细化传球 待打表
This commit is contained in:
@@ -39,11 +39,6 @@ public final class Constants {
|
|||||||
public static final double backboardUpLimit = 3000.0; // 背板上限角度(根据实际需求设置)
|
public static final double backboardUpLimit = 3000.0; // 背板上限角度(根据实际需求设置)
|
||||||
public static final double backboardDownLimit = 0.0; // 背板下限角度(根据实际需求设置)
|
public static final double backboardDownLimit = 0.0; // 背板下限角度(根据实际需求设置)
|
||||||
}
|
}
|
||||||
public class ShooterCalculation{
|
|
||||||
public static final double positionNear = 0; // 近距离背板角度
|
|
||||||
public static final double positionMid = 1600; // 中距离背板角度
|
|
||||||
public static final double postionFar = 3200; // 远距离背板角度
|
|
||||||
}
|
|
||||||
public class AutoPositioning {
|
public class AutoPositioning {
|
||||||
public static final double autoRotationkP = 0.1;
|
public static final double autoRotationkP = 0.1;
|
||||||
public static final double autoRotationForBumpTargetDegrees = 45;
|
public static final double autoRotationForBumpTargetDegrees = 45;
|
||||||
|
|||||||
@@ -124,6 +124,8 @@ public class DriveControls {
|
|||||||
// 将距离值写入 NetworkTable
|
// 将距离值写入 NetworkTable
|
||||||
autoControlNetworkTable.getEntry("distanceToHub").setDouble(distanceAndRotation[0]);
|
autoControlNetworkTable.getEntry("distanceToHub").setDouble(distanceAndRotation[0]);
|
||||||
autoControlNetworkTable.getEntry("angleDifferenceToHub").setDouble(distanceAndRotation[1]);
|
autoControlNetworkTable.getEntry("angleDifferenceToHub").setDouble(distanceAndRotation[1]);
|
||||||
|
autoControlNetworkTable.getEntry("distanceToPassball").setDouble(calculateDistanceAndRotationToPassBall()[0]);
|
||||||
|
autoControlNetworkTable.getEntry("angleDifferenceToPassball").setDouble(calculateDistanceAndRotationToPassBall()[1]);
|
||||||
|
|
||||||
switch (robotStatusManager.getStatus()) {
|
switch (robotStatusManager.getStatus()) {
|
||||||
case Stopped:
|
case Stopped:
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ public class ShooterControls {
|
|||||||
break;
|
break;
|
||||||
case AllTelop:
|
case AllTelop:
|
||||||
case PassingBall:
|
case PassingBall:
|
||||||
var xP = shooterSubsystem.getDistance();
|
var xP = shooterSubsystem.getDistanceToPassball();
|
||||||
//xP = Math.max(1.2, Math.min(4.5, xP));
|
//xP = Math.max(1.2, Math.min(4.5, xP));
|
||||||
flywheelSpeed = 0.6956596811733782*xP*xP*xP*xP*xP*xP*xP-14.164408860183267*xP*xP*xP*xP*xP*xP+119.7115375240918*xP*xP*xP*xP*xP-543.0984876677477*xP*xP*xP*xP+1425.1928543240738*xP*xP*xP-2156.199296490315*xP*xP+1736.568139600292*xP-516.097598057351;
|
flywheelSpeed = 0.6956596811733782*xP*xP*xP*xP*xP*xP*xP-14.164408860183267*xP*xP*xP*xP*xP*xP+119.7115375240918*xP*xP*xP*xP*xP-543.0984876677477*xP*xP*xP*xP+1425.1928543240738*xP*xP*xP-2156.199296490315*xP*xP+1736.568139600292*xP-516.097598057351;
|
||||||
flywheelSpeed += flywheelSpeedOffset;
|
flywheelSpeed += flywheelSpeedOffset;
|
||||||
@@ -65,7 +65,7 @@ public class ShooterControls {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case AutoAimming:
|
case AutoAimming:
|
||||||
var x = shooterSubsystem.getDistance();
|
var x = shooterSubsystem.getDistanceToHub();
|
||||||
x = Math.max(1.2, Math.min(4.5, x));
|
x = Math.max(1.2, Math.min(4.5, x));
|
||||||
flywheelSpeed = 0.6956596811733782*x*x*x*x*x*x*x-14.164408860183267*x*x*x*x*x*x+119.7115375240918*x*x*x*x*x-543.0984876677477*x*x*x*x+1425.1928543240738*x*x*x-2156.199296490315*x*x+1736.568139600292*x-516.097598057351;
|
flywheelSpeed = 0.6956596811733782*x*x*x*x*x*x*x-14.164408860183267*x*x*x*x*x*x+119.7115375240918*x*x*x*x*x-543.0984876677477*x*x*x*x+1425.1928543240738*x*x*x-2156.199296490315*x*x+1736.568139600292*x-516.097598057351;
|
||||||
flywheelSpeed += flywheelSpeedOffset;
|
flywheelSpeed += flywheelSpeedOffset;
|
||||||
|
|||||||
@@ -161,11 +161,14 @@ public class ShooterSubsystem extends SubsystemBase {
|
|||||||
shooterNetworkTable.getEntry("backboardCurrentRate").setDouble(getBackboardPosition());
|
shooterNetworkTable.getEntry("backboardCurrentRate").setDouble(getBackboardPosition());
|
||||||
shooterNetworkTable.getEntry("backboardTargetRate").setDouble(backboardPID.getSetpoint().position);
|
shooterNetworkTable.getEntry("backboardTargetRate").setDouble(backboardPID.getSetpoint().position);
|
||||||
shooterNetworkTable.getEntry("isBackboardAtTarget").setBoolean(isBackboardAtTarget());
|
shooterNetworkTable.getEntry("isBackboardAtTarget").setBoolean(isBackboardAtTarget());
|
||||||
shooterNetworkTable.getEntry("distanceGetted").setDouble(getDistance());
|
shooterNetworkTable.getEntry("distanceGetted").setDouble(getDistanceToHub());
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getDistance(){
|
public double getDistanceToHub(){
|
||||||
//获得车子距离Hub的距离
|
//获得车子距离Hub的距离
|
||||||
return NetworkTableInstance.getDefault().getTable("AutoControl").getEntry("distanceToHub").getDouble(0.0);
|
return NetworkTableInstance.getDefault().getTable("AutoControl").getEntry("distanceToHub").getDouble(0.0);
|
||||||
}
|
}
|
||||||
|
public double getDistanceToPassball(){
|
||||||
|
return NetworkTableInstance.getDefault().getTable("AutoControl").getEntry("distanceToPassball").getDouble(0.0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user