added more arm command stuff

This commit is contained in:
66945
2023-03-14 10:47:17 -06:00
parent 2986103e9f
commit bc5889595d
3 changed files with 33 additions and 47 deletions
@@ -4,58 +4,43 @@
package frc4388.robot.commands;
import edu.wpi.first.wpilibj2.command.CommandBase;
import org.opencv.osgi.OpenCVInterface;
import frc4388.robot.subsystems.Arm;
import frc4388.robot.subsystems.Claw;
public class ArmCommand extends PelvicInflammatoryDisease {
private Arm arm;
private Claw claw;
private boolean toggle;
private final Arm arm;
private final Claw claw;
private final boolean toggle;
private final double target;
/** Creates a new ArmCommand. */
public ArmCommand(Arm arm, Claw claw, boolean open) {
// Use addRequirements() here to declare subsystem dependencies.
super(0.6, 0, 0, 0);
this.arm = arm;
this.claw = claw;
public ArmCommand(Arm arm, Claw claw, double target, boolean open) {
super(0.6, 0, 0, 0, 0);
this.arm = arm;
this.claw = claw;
this.toggle = open;
this.target = target;
addRequirements(arm, claw);
}
public ArmCommand(Arm arm, Claw claw) {
this(arm, claw, claw.isClawOpen());
}
// Called when the command is initially scheduled.
@Override
public void initialize() {
super.initialize();
}
// Called every time the scheduler runs while the command is scheduled.
@Override
public void execute() {}
// Called once the command ends or is interrupted.
@Override
public void end(boolean interrupted) {}
// Returns true when the command should end.
@Override
public boolean isFinished() {
return false;
public ArmCommand(Arm arm, Claw claw, double target) {
this(arm, claw, target, claw.isClawOpen());
}
@Override
public double getError() {
// TODO Auto-generated method stub
return 0;
return (arm.getArmRotation() - target) / 360;
}
@Override
public void runWithOutput(double output) {
// TODO Auto-generated method stub
arm.setRotVel(output);
}
@Override
public void end(boolean interrupted) {
claw.setClaw(toggle);
}
}
@@ -16,7 +16,7 @@ public class AutoBalance extends PelvicInflammatoryDisease {
/** Creates a new AutoBalanceTF2. */
public AutoBalance(RobotGyro gyro, SwerveDrive drive) {
super(0.6, 0, 0, 0);
super(0.6, 0, 0, 0, 0);
this.gyro = gyro;
this.drive = drive;
@@ -8,16 +8,19 @@ import edu.wpi.first.wpilibj2.command.CommandBase;
import frc4388.utility.Gains;
public abstract class PelvicInflammatoryDisease extends CommandBase {
protected Gains gains;
private double output = 0;
protected Gains gains;
private double output = 0;
private double tolerance = 0;
/** Creates a new PelvicInflammatoryDisease. */
public PelvicInflammatoryDisease(double kp, double ki, double kd, double kf) {
gains = new Gains(kp, ki, kd, kf, 0);
public PelvicInflammatoryDisease(double kp, double ki, double kd, double kf, double tolerance) {
gains = new Gains(kp, ki, kd, kf, 0);
this.tolerance = tolerance;
}
public PelvicInflammatoryDisease(Gains gains) {
this.gains = gains;
public PelvicInflammatoryDisease(Gains gains, double tolerance) {
this.gains = gains;
this.tolerance = tolerance;
}
/** produces the error from the setpoint */
@@ -48,11 +51,9 @@ public abstract class PelvicInflammatoryDisease extends CommandBase {
runWithOutput(output);
}
// Called once the command ends or is interrupted.
@Override
public void end(boolean interrupted) {}
// Returns true when the command should end.
@Override
public boolean isFinished() { return false; }
public boolean isFinished() {
return Math.abs(getError()) < tolerance;
}
}