Skip to content

Commit 53390c6

Browse files
committed
Adjusted PivotArm PID Code
1 parent 7ac4d2c commit 53390c6

File tree

4 files changed

+38
-10
lines changed

4 files changed

+38
-10
lines changed

src/main/java/frc/robot/subsystems/pivotArm/PivotArm.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,12 @@ public void periodic() {
9696
Logger.processInputs("PivotArm", inputs);
9797

9898
armMechanism.setAngle(Units.radiansToDegrees(inputs.angleRads));
99-
99+
100100
// Update the PID constants if they have changed
101101
LoggedTunableNumber.ifChanged(
102102
hashCode(), () -> io.setPID(logP.get(), logI.get(), logD.get()), logP, logI, logD);
103-
103+
LoggedTunableNumber.ifChanged(
104+
hashCode(), () -> io.setFeed(logkS.get(), logkV.get(), logkG.get(), logkA.get()), logkS, logkV, logkG, logkA);
104105
// Log Inputs
105106
Logger.processInputs("PivotArm", inputs);
106107

src/main/java/frc/robot/subsystems/pivotArm/PivotArmIO.java

+4
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ public default boolean atSetpoint() {
4949
return false;
5050
}
5151

52+
public default void setPID(double kP, double kI, double kD) {}
53+
54+
public default void setFeed(double kS, double kV, double kG, double kA) {}
55+
5256
public default void setP(double p) {}
5357

5458
public default void setI(double i) {}

src/main/java/frc/robot/subsystems/pivotArm/PivotArmIOSim.java

+7
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,13 @@ public boolean atSetpoint() {
8282
return m_controller.atGoal();
8383
}
8484

85+
@Override
86+
public void setPID(double p, double i, double d){
87+
setP(p);
88+
setI(i);
89+
setD(d);
90+
}
91+
8592
@Override
8693
public void setP(double p) {
8794
m_controller.setP(p);

src/main/java/frc/robot/subsystems/pivotArm/PivotArmIOSparkMax.java

+24-8
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import static frc.robot.Constants.ElectricalLayout.PIVOT_ARM_ID;
55
import static frc.robot.Constants.ElectricalLayout.RIGHT_SLAVE_BACK_ID;
66
import static frc.robot.Constants.ElectricalLayout.RIGHT_SLAVE_FRONT_ID;
7+
import static frc.robot.subsystems.pivotArm.PivotArmConstants.PIVOT_ARM_FEED_FORWARD;
8+
import static frc.robot.subsystems.pivotArm.PivotArmConstants.PIVOT_ARM_PID;
79

810
import org.littletonrobotics.junction.Logger;
911

@@ -20,6 +22,7 @@
2022
import edu.wpi.first.wpilibj.DutyCycleEncoder;
2123
import frc.robot.Constants;
2224
import frc.robot.Constants.ElectricalLayout;
25+
import frc.robot.subsystems.pivotArm.PivotArmConstants.PIDGains;
2326

2427
public class PivotArmIOSparkMax implements PivotArmIO {
2528
// Motor and Encoders
@@ -78,7 +81,7 @@ public PivotArmIOSparkMax() {
7881
// make sure the pivot starts at the bottom position every time
7982
// absoluteEncoder.reset();
8083

81-
pidController = new ProfiledPIDController(PivotArmConstants.PIVOT_ARM_PID_REAL[0], PivotArmConstants.PIVOT_ARM_PID_REAL[1], PivotArmConstants.PIVOT_ARM_PID_REAL[2],
84+
pidController = new ProfiledPIDController(PIVOT_ARM_PID.kP(), PIVOT_ARM_PID.kI(), PIVOT_ARM_PID.kD(),
8285
new TrapezoidProfile.Constraints(2.45, 2.45));
8386

8487
pidController.setTolerance(PivotArmConstants.PIVOT_ARM_PID_TOLERANCE, PivotArmConstants.PIVOT_ARM_PID_VELOCITY_TOLERANCE);
@@ -96,16 +99,16 @@ public PivotArmIOSparkMax() {
9699

97100
private void configurePID() {
98101
// pidController.setOutputRange(PivotArmConstants.PIVOT_ARM_MIN_ANGLE, PivotArmConstants.PIVOT_ARM_MAX_ANGLE);
99-
pidController.setP(PivotArmConstants.PIVOT_ARM_PID_REAL[0]);
100-
pidController.setI(PivotArmConstants.PIVOT_ARM_PID_REAL[1]);
101-
pidController.setD(PivotArmConstants.PIVOT_ARM_PID_REAL[2]);
102+
setP(PIVOT_ARM_PID.kP());
103+
setI(PIVOT_ARM_PID.kI());
104+
setD(PIVOT_ARM_PID.kD());
102105
}
103106

104107
private void configureFeedForward() {
105-
setkS(PivotArmConstants.PIVOT_ARM_FEEDFORWARD_REAL[0]);
106-
setkG(PivotArmConstants.PIVOT_ARM_FEEDFORWARD_REAL[1]);
107-
setkV(PivotArmConstants.PIVOT_ARM_FEEDFORWARD_REAL[2]);
108-
setkA(PivotArmConstants.PIVOT_ARM_FEEDFORWARD_REAL[3]);
108+
setkS(PIVOT_ARM_FEED_FORWARD.kS());
109+
setkG(PIVOT_ARM_FEED_FORWARD.kG());
110+
setkV(PIVOT_ARM_FEED_FORWARD.kV());
111+
setkA(PIVOT_ARM_FEED_FORWARD.kA());
109112
}
110113

111114
/** Updates the set of loggable inputs. */
@@ -119,6 +122,7 @@ public void updateInputs(PivotArmIOInputs inputs) {
119122
inputs.currentAmps = new double[] {pivotMotor.getOutputCurrent()};
120123
inputs.tempCelsius = new double[] {pivotMotor.getMotorTemperature()};
121124
inputs.setpointAngleRads = setpoint;
125+
Logger.recordOutput("PivotArm/kP", pidController.getP());
122126
}
123127

124128
/** Run open loop at the specified voltage. */
@@ -183,6 +187,13 @@ public void setD(double d) {
183187
pidController.setD(d);
184188
}
185189

190+
@Override
191+
public void setPID(double p, double i, double d) {
192+
setP(p);
193+
setI(i);
194+
setD(d);
195+
}
196+
186197
@Override
187198
public void setFF(double ff) {
188199
// pidController.setFF(ff);
@@ -208,6 +219,11 @@ public void setkA(double kA) {
208219
feedforward = new ArmFeedforward(feedforward.ks, feedforward.kg, feedforward.kv, kA);
209220
}
210221

222+
@Override
223+
public void setFeed(double kS, double kV, double kG, double kA) {
224+
feedforward = new ArmFeedforward(kS, kG, kV, kA);
225+
}
226+
211227
@Override
212228
public double getkS(){
213229
return feedforward.ks;

0 commit comments

Comments
 (0)