@@ -34,7 +34,7 @@ public ArmSubsystem(StateControllerSub stateControllerSub, PneumaticControlSub p
34
34
// armDutyCycle.setDistancePerRotation(Math.PI);
35
35
36
36
pidController .setIZone (armIZone );
37
- pidController .setIntegratorRange (0 ,0.1 );
37
+ pidController .setIntegratorRange (- 0.15 ,0.15 );
38
38
39
39
40
40
this .stateControllerSub = stateControllerSub ;
@@ -111,9 +111,7 @@ public ArmSubsystem(StateControllerSub stateControllerSub, PneumaticControlSub p
111
111
112
112
}
113
113
114
- double lastP = armkP ;
115
- double lastI = armkI ;
116
- double lastD = armkD ;
114
+
117
115
118
116
double lastZeroingTimestamp = 0 ;
119
117
@@ -167,25 +165,39 @@ public void periodic() {
167
165
SmartDashboard .putNumber ("armError" ,getArmError ());
168
166
169
167
170
- double currentP = SmartDashboard .getNumber ("armTuningP" ,0 );
171
- double currentI = SmartDashboard .getNumber ("armTuningI" ,0 );
172
- double currentD = SmartDashboard .getNumber ("armTuningD" ,0 );
173
- if ((currentP !=lastP || currentI !=lastI || currentD !=lastD )){ // && stateControllerSub.tuningMode()
174
- lastP = currentP ;
175
- lastI = currentI ;
176
- lastD = currentD ;
177
168
178
- armMaster .getPIDController ().setP (currentP );
179
- armMaster .getPIDController ().setI (currentI );
180
- armMaster .getPIDController ().setD (currentD );
169
+ if ((stateControllerSub .tuningMode ())){ //
170
+
171
+ double currentP = SmartDashboard .getNumber ("armTuningP" ,0 );
172
+ double currentI = SmartDashboard .getNumber ("armTuningI" ,0 );
173
+ double currentD = SmartDashboard .getNumber ("armTuningD" ,0 );
174
+
175
+ // armMaster.getPIDController().setP(currentP);
176
+ // armMaster.getPIDController().setI(currentI);
177
+ // armMaster.getPIDController().setD(currentD);
181
178
182
179
pidController .setP (currentP );
183
180
pidController .setI (currentI );
184
181
pidController .setD (currentD );
185
182
183
+ }else {
184
+
185
+ if (inRangeOfBrake ()){
186
+ pidController .setP (armkP );
187
+ pidController .setI (armkI );
188
+ pidController .setD (armkD );
189
+
190
+ }else {
191
+ pidController .setP (armkPBrakeless );
192
+ pidController .setI (armkIBrakeless );
193
+ pidController .setD (armkDBrakeless );
194
+
195
+ }
196
+
197
+
186
198
}
187
199
188
- double pidOut = MBUtils .clamp (pidController .calculate (getRIODutyCycleRad ()),0.5 );
200
+ double pidOut = MBUtils .clamp (pidController .calculate (getRIODutyCycleRad ()),armMaxPower );
189
201
190
202
if (armDutyCycle .isConnected ())
191
203
armMaster .set (pidOut );
@@ -199,7 +211,11 @@ public void periodic() {
199
211
// SmartDashboard.putNumber("armRIO-PWM rad",getRIODutyCycleRad());
200
212
// SmartDashboard.putNumber("armRIO-PWM raw",armDutyCycle.getAbsolutePosition());
201
213
202
- pneumaticControlSub .setBrakeSolenoid (Math .abs (getArmError ())<0.05 && getArmAngle () > 0 && getArmAngle () < Units .degreesToRadians (50 ) );
214
+ pneumaticControlSub .setBrakeSolenoid (Math .abs (getArmError ())<brakeEngageError && inRangeOfBrake ());
215
+ }
216
+
217
+ public boolean inRangeOfBrake (){
218
+ return getArmAngle () > brakeMinAngle && getArmAngle () < brakeMaxAngle ;
203
219
}
204
220
205
221
public double getArmError (){
0 commit comments