digital deadzone implementation

This commit is contained in:
aarav18
2022-02-28 16:46:40 -07:00
parent 343f423bb2
commit fa15241483
3 changed files with 29 additions and 15 deletions
+6 -2
View File
@@ -110,8 +110,12 @@ public final class Constants {
public static final Gains SHOOTER_ANGLE_GAINS = new Gains(0.05, 0.0, 0.0, 0.0, 0, 0.3);
public static final double SHOOTER_TURRET_MIN = -1.0;
public static final double DEADZONE_LEFT = 0.0;
public static final double DEADZONE_RIGHT = 340.0;
// deadzones
public static final double HARD_DEADZONE_LEFT = 0.0;
public static final double HARD_DEADZONE_RIGHT = 340.0;
public static final double DIG_DEADZONE_LEFT = 40.0;
public static final double DIG_DEADZONE_RIGHT = 60.0;
public static final int SHOOTER_FALCON_BALLER_ID = 0; //unknown value, fix later//
public static final int SHOOTER_FALCON_BALLER_FOLLOWER_ID = 0; //"//
@@ -50,11 +50,21 @@ public class AimToCenter extends CommandBase {
}
/**
* Checks if in deadzone.
* @return True if deadzone.
* Checks if in hardware deadzone (due to mechanical limitations).
* @param angle Angle to check.
* @return True if in hardware deadzone.
*/
public static boolean isDeadzone(double angle) {
return ((ShooterConstants.DEADZONE_LEFT > angle) || (angle > ShooterConstants.DEADZONE_RIGHT));
public static boolean isHardwareDeadzone(double angle) {
return ((ShooterConstants.HARD_DEADZONE_LEFT > angle) || (angle > ShooterConstants.HARD_DEADZONE_RIGHT));
}
/**
* Checks if in digital deadzone (due to climber).
* @param angle Angle to check.
* @return True if in digital deadzone.
*/
public static boolean isDigitalDeadzone(double angle) {
return ((ShooterConstants.DIG_DEADZONE_LEFT < angle) && (angle < ShooterConstants.DIG_DEADZONE_RIGHT));
}
// Called once the command ends or is interrupted.
@@ -14,39 +14,39 @@ public class AimToCenterTest {
boolean output;
//20 deg
output = AimToCenter.isDeadzone(20.);
output = AimToCenter.isHardwareDeadzone(20.);
Assert.assertFalse(output);
//-10 deg
output = AimToCenter.isDeadzone(-10.);
output = AimToCenter.isHardwareDeadzone(-10.);
Assert.assertTrue(output);
//-1 deg
output = AimToCenter.isDeadzone(-1.);
output = AimToCenter.isHardwareDeadzone(-1.);
Assert.assertTrue(output);
//341 deg
output = AimToCenter.isDeadzone(341.);
output = AimToCenter.isHardwareDeadzone(341.);
Assert.assertTrue(output);
//340 deg
output = AimToCenter.isDeadzone(340.);
output = AimToCenter.isHardwareDeadzone(340.);
Assert.assertFalse(output);
//0 deg
output = AimToCenter.isDeadzone(0.);
output = AimToCenter.isHardwareDeadzone(0.);
Assert.assertFalse(output);
//200 deg
output = AimToCenter.isDeadzone(200.);
output = AimToCenter.isHardwareDeadzone(200.);
Assert.assertFalse(output);
//2000000 deg
output = AimToCenter.isDeadzone(2000000.);
output = AimToCenter.isHardwareDeadzone(2000000.);
Assert.assertTrue(output);
//NaN deg
output = AimToCenter.isDeadzone(Double.NaN);
output = AimToCenter.isHardwareDeadzone(Double.NaN);
Assert.assertFalse(output);
}