4
4
import static frc .robot .Constants .ElectricalLayout .PIVOT_ARM_ID ;
5
5
import static frc .robot .Constants .ElectricalLayout .RIGHT_SLAVE_BACK_ID ;
6
6
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 ;
7
9
8
10
import org .littletonrobotics .junction .Logger ;
9
11
20
22
import edu .wpi .first .wpilibj .DutyCycleEncoder ;
21
23
import frc .robot .Constants ;
22
24
import frc .robot .Constants .ElectricalLayout ;
25
+ import frc .robot .subsystems .pivotArm .PivotArmConstants .PIDGains ;
23
26
24
27
public class PivotArmIOSparkMax implements PivotArmIO {
25
28
// Motor and Encoders
@@ -78,7 +81,7 @@ public PivotArmIOSparkMax() {
78
81
// make sure the pivot starts at the bottom position every time
79
82
// absoluteEncoder.reset();
80
83
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 () ,
82
85
new TrapezoidProfile .Constraints (2.45 , 2.45 ));
83
86
84
87
pidController .setTolerance (PivotArmConstants .PIVOT_ARM_PID_TOLERANCE , PivotArmConstants .PIVOT_ARM_PID_VELOCITY_TOLERANCE );
@@ -96,16 +99,16 @@ public PivotArmIOSparkMax() {
96
99
97
100
private void configurePID () {
98
101
// 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 () );
102
105
}
103
106
104
107
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 () );
109
112
}
110
113
111
114
/** Updates the set of loggable inputs. */
@@ -119,6 +122,7 @@ public void updateInputs(PivotArmIOInputs inputs) {
119
122
inputs .currentAmps = new double [] {pivotMotor .getOutputCurrent ()};
120
123
inputs .tempCelsius = new double [] {pivotMotor .getMotorTemperature ()};
121
124
inputs .setpointAngleRads = setpoint ;
125
+ Logger .recordOutput ("PivotArm/kP" , pidController .getP ());
122
126
}
123
127
124
128
/** Run open loop at the specified voltage. */
@@ -183,6 +187,13 @@ public void setD(double d) {
183
187
pidController .setD (d );
184
188
}
185
189
190
+ @ Override
191
+ public void setPID (double p , double i , double d ) {
192
+ setP (p );
193
+ setI (i );
194
+ setD (d );
195
+ }
196
+
186
197
@ Override
187
198
public void setFF (double ff ) {
188
199
// pidController.setFF(ff);
@@ -208,6 +219,11 @@ public void setkA(double kA) {
208
219
feedforward = new ArmFeedforward (feedforward .ks , feedforward .kg , feedforward .kv , kA );
209
220
}
210
221
222
+ @ Override
223
+ public void setFeed (double kS , double kV , double kG , double kA ) {
224
+ feedforward = new ArmFeedforward (kS , kG , kV , kA );
225
+ }
226
+
211
227
@ Override
212
228
public double getkS (){
213
229
return feedforward .ks ;
0 commit comments