Skip to content

Commit 541381a

Browse files
committed
last changes
1 parent cb79967 commit 541381a

3 files changed

Lines changed: 32 additions & 9 deletions

File tree

src/main/java/frc/robot/subsystems/dropper/DropperIO.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
public interface DropperIO {
44

5-
public class DropperIOInputs {
5+
public static class DropperIOInputs {
66
public double angle;
77
public double velocity;
88
public double appliedVoltage;
@@ -14,11 +14,11 @@ public class DropperIOInputs {
1414
public default void updateInputs(DropperIOInputs inputs) {}
1515

1616
public default double getAngle() {
17-
return DropperIOInputs.angle;
17+
return 0.0;
1818
}
1919

2020
public default double getAngVelocity() {
21-
return DropperIOInputs.velocity;
21+
return 0.0;
2222
}
2323

2424
public default void setVoltage(double voltage) {}

src/main/java/frc/robot/subsystems/dropper/DropperIOSim.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,23 @@
22

33
import static frc.robot.Constants.NEO_CURRENT_LIMIT;
44

5+
import com.revrobotics.spark.SparkMax;
6+
57
import edu.wpi.first.math.controller.ProfiledPIDController;
8+
import edu.wpi.first.math.system.plant.DCMotor;
69

710
public class DropperIOSim implements DropperIO {
8-
11+
private SparkMax leftMotor = new SparkMax(DropperConstants.LEFT_DROPPER_MOTOR_ID, MotorType.kBrushless);
12+
913
@Override
1014
public default void updateInputs(DropperIOInputs inputs) {
11-
12-
}
15+
sim.update(0.02); //updates
16+
inputs.appliedVoltage = leftMotor.getAppliedOutput() * leftMotor.getBusVoltage(); //from spark max
17+
inputs.angVelocityRadsPerSec = leftEncoder.getVelocity() * 2 * pi / 60;
18+
inputs.angleRads = leftEncoder.getPosition() * 2 * pi;
19+
inputs.angle = leftEncoder.getPosition() * 360;
20+
inputs.velocity = leftEncoder.getVelocity();
21+
}
1322

1423
@Override
1524
public default double getAngle() {

src/main/java/frc/robot/subsystems/dropper/DropperIOSparkMax.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,30 @@
1010
import com.revrobotics.spark.config.SparkMaxConfig;
1111
import com.revrobotics.spark.config.SparkBaseConfig.IdleMode;
1212
import com.revrobotics.spark.SparkMax;
13+
14+
import edu.wpi.first.math.MathUtil;
1315
import edu.wpi.first.math.controller.PIDController;
1416
import edu.wpi.first.math.controller.ProfiledPIDController;
1517
import edu.wpi.first.math.trajectory.TrapezoidProfile;
1618
import edu.wpi.first.math.util.Units;
1719
import edu.wpi.first.units.measure.Angle;
20+
import edu.wpi.first.wpilibj.Timer;
1821

1922
public class DropperIOSparkMax implements DropperIO {
2023

2124
private ProfiledPIDController controller = new ProfiledPIDController(0, 0, 0, new TrapezoidProfile(-12, 12));
22-
private SparkMax rightMotor; //changed from spark flex to can spark max cuz
25+
private SparkMax rightMotor;
2326
private RelativeEncoder rightEncoder;
2427
private SparkMax leftMotor;
2528
private RelativeEncoder leftEncoder;
2629
private final ProfiledPIDController pidController;
2730
private double pi = DropperConstants.PI;
2831

32+
//some variables for the methods like go to setpoint
33+
34+
double lastSpeed = 0; //just blanl
35+
double lastTime = Timer.getFPGATimestamp();
36+
2937
public DropperIOSparkMax() {
3038
//motors
3139
leftMotor = new SparkMax(DropperConstants.LEFT_DROPPER_MOTOR_ID, MotorType.kBrushless);//ask the type of motor
@@ -89,10 +97,16 @@ public void setSetpoint(double setpoint){
8997
pidController.reset(getAngle(), getAngVelocity());
9098

9199
}
92-
93100
@Override
94101
public void goToSetpoint(){
102+
double pidOutput = pidController.calculate(getAngle()); //feyrgfasrrkguilsrhfdljf;ksdjfakfjieowj;owedsjkllfjweo;ifjoasi;djlkjfwoiej;dksjf;sldjfoaejriofj;orjlkdjsoiifejrkldjsiojrkfjslkfjo;ei;rjdjkljfois;irrje;lsjkajfsoijrofajas
103+
double acceleration = (pidController.getSetpoint().velocity - lastSpeed) / (Timer.getFPGATimestamp() - lastTime); //change in velocity over change in time... physics..
104+
//acceleration of the PID setpoint
105+
106+
setVoltage(MathUtil.clamp(pidOutput, -12, 12));
95107

108+
lastSpeed = pidController.getSetpoint().velocity;
109+
lastTime = Timer.getFPGATimestamp();
96110
}
97111

98112
@Override
@@ -105,7 +119,7 @@ public void stop(){
105119
//PID
106120

107121
@Override
108-
public void setPIDGains(double kp, ki, kd){
122+
public default void setPIDGains(double kp, ki, kd){
109123
velocityPID.setP(kp);//idek
110124
velocityPID.setI(ki);
111125
velocityPID.setD(kd);

0 commit comments

Comments
 (0)