mirror of
https://github.com/Team4388/2022NoWayHome.git
synced 2026-06-09 00:38:05 -06:00
digital deadzone implementation
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user