mirror of
https://github.com/Team4388/2022NoWayHome.git
synced 2026-06-09 08:48:07 -06:00
Added input controls
This commit is contained in:
@@ -85,6 +85,8 @@ public final class Constants {
|
||||
|
||||
public static final double MAX_ARM_LENGTH = LOWER_ARM_LENGTH + UPPER_ARM_LENGTH;
|
||||
public static final double MIN_ARM_LENGTH = Math.abs(LOWER_ARM_LENGTH + UPPER_ARM_LENGTH);
|
||||
|
||||
public static final double MOVE_SPEED = 50; // cm per second
|
||||
}
|
||||
/**
|
||||
* The OIConstants class contains the ID for the XBox controllers
|
||||
|
||||
@@ -42,7 +42,7 @@ public class RobotContainer {
|
||||
|
||||
private final LED m_robotLED = new LED(m_robotMap.LEDController);
|
||||
|
||||
private final Climber m_climber = new Climber(m_robotMap.shoulder, m_robotMap.elbow, m_robotMap.gyro);
|
||||
private final Climber m_robotClimber = new Climber(m_robotMap.shoulder, m_robotMap.elbow, m_robotMap.gyro);
|
||||
/* Controllers */
|
||||
private final XboxController m_driverXbox = new XboxController(OIConstants.XBOX_DRIVER_ID);
|
||||
private final XboxController m_operatorXbox = new XboxController(OIConstants.XBOX_OPERATOR_ID);
|
||||
@@ -59,6 +59,11 @@ public class RobotContainer {
|
||||
new RunCommand(() -> m_robotSwerveDrive.driveWithInput(-getDriverController().getLeftXAxis(),
|
||||
getDriverController().getLeftYAxis(), -getDriverController().getRightXAxis(), false), m_robotSwerveDrive));
|
||||
|
||||
// moves climber in xy space with two-axis input from the operator controller
|
||||
m_robotClimber.setDefaultCommand(
|
||||
new RunCommand(() -> m_robotClimber.controlWithInput(getOperatorController().getLeftXAxis(),
|
||||
getOperatorController().getLeftYAxis()), m_robotClimber));
|
||||
|
||||
// continually sends updates to the Blinkin LED controller to keep the lights on
|
||||
m_robotLED.setDefaultCommand(new RunCommand(m_robotLED::updateLED, m_robotLED));
|
||||
}
|
||||
|
||||
@@ -15,6 +15,8 @@ public class Climber extends SubsystemBase {
|
||||
private WPI_TalonFX m_elbow;
|
||||
|
||||
private WPI_PigeonIMU m_gyro;
|
||||
|
||||
private double[] position = {0.d, 0.d};
|
||||
|
||||
public Climber(WPI_TalonFX shoulder, WPI_TalonFX elbow, WPI_PigeonIMU gyro) {
|
||||
m_shoulder = shoulder;
|
||||
@@ -77,7 +79,7 @@ public class Climber extends SubsystemBase {
|
||||
public double getRobotTilt() {
|
||||
double[] ypr = new double[3];
|
||||
m_gyro.getYawPitchRoll(ypr);
|
||||
return ypr[1]; // Pitch
|
||||
return Math.toRadians(ypr[1]); // Pitch
|
||||
}
|
||||
|
||||
public void setJointAngles(double[] angles) {
|
||||
@@ -87,4 +89,14 @@ public class Climber extends SubsystemBase {
|
||||
public void setJointAngles(double shoulderAngle, double elbowAngle) {
|
||||
// Set PIDs
|
||||
}
|
||||
|
||||
public void controlWithInput(double xInput, double yInput) {
|
||||
position[0] += xInput * ClimberConstants.MOVE_SPEED;
|
||||
position[1] += yInput * ClimberConstants.MOVE_SPEED;
|
||||
|
||||
double tiltAngle = getRobotTilt();
|
||||
|
||||
double[] jointAngles = getJointAngles(position[0], position[1], tiltAngle);
|
||||
setJointAngles(jointAngles);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user