Skip to content

Commit

Permalink
Merge branch 'Arm/#202-SelfTest' into All/#305-SelfTestFramework
Browse files Browse the repository at this point in the history
  • Loading branch information
TheMightyWarPig committed Apr 19, 2018
2 parents b358787 + 05996f8 commit f2732a7
Show file tree
Hide file tree
Showing 3 changed files with 103 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/main/java/org/frc5687/powerup/robot/Constants.java
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,7 @@ public class HoldSpeeds {

public class Arm {
public static final double PDP_EXCESSIVE_CURRENT = 40.0;
public static final double MIN_AMPS = 3.5;

public static final boolean MOTOR_INVERTED_PROTO = false;
public static final boolean MOTOR_INVERTED_COMP = true;
Expand Down
83 changes: 83 additions & 0 deletions src/main/java/org/frc5687/powerup/robot/commands/ArmMotorTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
package org.frc5687.powerup.robot.commands;

import edu.wpi.first.wpilibj.command.Command;
import org.frc5687.powerup.robot.Constants;
import org.frc5687.powerup.robot.RobotMap;
import org.frc5687.powerup.robot.subsystems.Arm;
import org.frc5687.powerup.robot.subsystems.Carriage;
import org.frc5687.powerup.robot.utils.PDP;
import org.frc5687.powerup.robot.commands.MoveCarriageToSetpointPID;
import edu.wpi.first.wpilibj.DriverStation;

import static java.lang.Math.abs;


public class ArmMotorTest extends Command {
private Arm arm;
private Carriage carriage;
private PDP pdp;
private long upMillis;
private long downMillis;
private long stopMillis;
private boolean finished;
private double amps;
private double bottomAngle;
private double topAngle;
private double startAngle;

public ArmMotorTest(Arm arm, Carriage carriage){
requires(arm);
requires(carriage);

this.arm = arm;
this.carriage = carriage;
}

@Override
protected void initialize() {
finished = false;
upMillis = System.currentTimeMillis() + 125;
stopMillis = System.currentTimeMillis() + 250;
downMillis = System.currentTimeMillis() + 375;
amps = 0;
topAngle = 0;
startAngle = arm.getAngle();
}

@Override
protected void execute() {
if (System.currentTimeMillis()< upMillis){
arm.drive(0.75);
amps = Math.max(amps, pdp.getCurrent(RobotMap.PDP.ARM_SP));
topAngle = Math.max(topAngle, arm.getAngle());

}
else if (System.currentTimeMillis()< stopMillis){
arm.drive(0);
bottomAngle = topAngle;
}
else {
arm.drive(-0.75);
amps = Math.max(amps, pdp.getCurrent(RobotMap.PDP.ARM_SP));
bottomAngle = Math.min(bottomAngle, arm.getAngle());
}
}

@Override
protected void end() {
if (amps < Constants.Arm.MIN_AMPS) {
DriverStation.reportError(amps + " amps drawn", false);
}
if (abs(startAngle - topAngle) < 20) {
DriverStation.reportError("angle change " + (startAngle - topAngle), false);
}
if (abs(topAngle - bottomAngle) > 20) {
DriverStation.reportError("angle change " + (bottomAngle - topAngle), false);
}
}

@Override
public boolean isFinished() {
return System.currentTimeMillis() > downMillis;
}
}
19 changes: 19 additions & 0 deletions src/main/java/org/frc5687/powerup/robot/commands/TestArm.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package org.frc5687.powerup.robot.commands;

import edu.wpi.first.wpilibj.command.Command;
import edu.wpi.first.wpilibj.command.CommandGroup;
import org.frc5687.powerup.robot.Constants;
import org.frc5687.powerup.robot.Robot;
import org.frc5687.powerup.robot.subsystems.Arm;
import org.frc5687.powerup.robot.subsystems.Carriage;

public class TestArm extends CommandGroup{
public TestArm(Robot robot){
addSequential(new ArmMotorTest(robot.getArm(), robot.getCarriage()));
addSequential(new MoveArmToSetpointPID(robot.getArm(), Constants.Arm.Encoder.ENCODER_START));
addSequential(new MoveArmToSetpointPID(robot.getArm(), Constants.Arm.Encoder.ENCODER_TOP));

}


}

0 comments on commit f2732a7

Please sign in to comment.