Skip to content

Commit c7011e0

Browse files
committed
feat: elevator analog command
1 parent 49adb04 commit c7011e0

9 files changed

+77
-4
lines changed

src/main/java/org/team1540/robot2024/RobotContainer.java

+10
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,12 @@
1212
import org.littletonrobotics.junction.networktables.LoggedDashboardNumber;
1313
import org.team1540.robot2024.commands.FeedForwardCharacterization;
1414
import org.team1540.robot2024.commands.SwerveDriveCommand;
15+
import org.team1540.robot2024.commands.elevator.ElevatorAnalog;
1516
import org.team1540.robot2024.subsystems.drive.*;
17+
import org.team1540.robot2024.subsystems.elevator.Elevator;
18+
import org.team1540.robot2024.subsystems.elevator.ElevatorIO;
19+
import org.team1540.robot2024.subsystems.elevator.ElevatorIOSim;
20+
import org.team1540.robot2024.subsystems.elevator.ElevatorIOTalonFX;
1621
import org.team1540.robot2024.subsystems.shooter.*;
1722
import org.team1540.robot2024.util.swerve.SwerveFactory;
1823
import org.littletonrobotics.junction.networktables.LoggedDashboardChooser;
@@ -29,6 +34,7 @@ public class RobotContainer {
2934
// Subsystems
3035
public final Drivetrain drivetrain;
3136
public final Shooter shooter;
37+
public final Elevator elevator;
3238

3339
// Controller
3440
public final CommandXboxController driver = new CommandXboxController(0);
@@ -56,6 +62,7 @@ public RobotContainer() {
5662
new ModuleIOTalonFX(SwerveFactory.getModuleMotors(SwerveConfig.BACK_LEFT, SwerveFactory.SwerveCorner.BACK_LEFT)),
5763
new ModuleIOTalonFX(SwerveFactory.getModuleMotors(SwerveConfig.BACK_RIGHT, SwerveFactory.SwerveCorner.BACK_RIGHT)));
5864
shooter = new Shooter(new ShooterPivotIOTalonFX(), new FlywheelsIOTalonFX());
65+
elevator = new Elevator(new ElevatorIOTalonFX());
5966
break;
6067

6168
case SIM:
@@ -68,6 +75,7 @@ public RobotContainer() {
6875
new ModuleIOSim(),
6976
new ModuleIOSim());
7077
shooter = new Shooter(new ShooterPivotIOSim(), new FlywheelsIOSim());
78+
elevator = new Elevator(new ElevatorIOSim());
7179
break;
7280

7381
default:
@@ -80,6 +88,7 @@ public RobotContainer() {
8088
new ModuleIO() {},
8189
new ModuleIO() {});
8290
shooter = new Shooter(new ShooterPivotIO() {}, new FlywheelsIO() {});
91+
elevator = new Elevator(new ElevatorIO() {});
8392
break;
8493
}
8594

@@ -109,6 +118,7 @@ public RobotContainer() {
109118
*/
110119
private void configureButtonBindings() {
111120
drivetrain.setDefaultCommand(new SwerveDriveCommand(drivetrain, driver));
121+
elevator.setDefaultCommand(new ElevatorAnalog(copilot, elevator));
112122
driver.x().onTrue(Commands.runOnce(drivetrain::stopWithX, drivetrain));
113123
driver.b().onTrue(
114124
Commands.runOnce(

src/main/java/org/team1540/robot2024/commands/climb/ClimbSequence.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import edu.wpi.first.wpilibj2.command.ParallelCommandGroup;
44
import edu.wpi.first.wpilibj2.command.SequentialCommandGroup;
55
import org.team1540.robot2024.Constants.Elevator.ElevatorState;
6-
import org.team1540.robot2024.commands.ElevatorSetpointCommand;
6+
import org.team1540.robot2024.commands.elevator.ElevatorSetpointCommand;
77
import org.team1540.robot2024.subsystems.elevator.Elevator;
88
import org.team1540.robot2024.subsystems.fakesubsystems.Hooks;
99

src/main/java/org/team1540/robot2024/commands/climb/DeclimbSequence.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import edu.wpi.first.wpilibj2.command.SequentialCommandGroup;
44
import org.team1540.robot2024.Constants.Elevator.ElevatorState;
5-
import org.team1540.robot2024.commands.ElevatorSetpointCommand;
5+
import org.team1540.robot2024.commands.elevator.ElevatorSetpointCommand;
66
import org.team1540.robot2024.subsystems.elevator.Elevator;
77
import org.team1540.robot2024.subsystems.fakesubsystems.Hooks;
88

src/main/java/org/team1540/robot2024/commands/climb/TrapAndClimbSequence.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import edu.wpi.first.wpilibj2.command.WaitCommand;
77
import org.team1540.robot2024.Constants;
88
import org.team1540.robot2024.Constants.Elevator.ElevatorState;
9-
import org.team1540.robot2024.commands.ElevatorSetpointCommand;
9+
import org.team1540.robot2024.commands.elevator.ElevatorSetpointCommand;
1010
import org.team1540.robot2024.subsystems.elevator.Elevator;
1111
import org.team1540.robot2024.subsystems.fakesubsystems.Hooks;
1212
import org.team1540.robot2024.subsystems.fakesubsystems.Tramp;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package org.team1540.robot2024.commands.elevator;
2+
3+
import org.team1540.robot2024.Constants;
4+
import org.team1540.robot2024.subsystems.elevator.Elevator;
5+
6+
import edu.wpi.first.wpilibj2.command.Command;
7+
import edu.wpi.first.wpilibj2.command.button.CommandXboxController;
8+
9+
public class ElevatorAnalog extends Command {
10+
11+
private final Elevator elevator;
12+
private final CommandXboxController copilot;
13+
14+
public ElevatorAnalog(CommandXboxController copilot, Elevator elevator) {
15+
this.elevator = elevator;
16+
this.copilot = copilot;
17+
addRequirements(elevator);
18+
}
19+
20+
@Override
21+
public void execute() {
22+
elevator.setVoltage(copilot.getRightTriggerAxis() + Constants.Elevator.KG);
23+
}
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package org.team1540.robot2024.commands.elevator;
2+
3+
import edu.wpi.first.wpilibj2.command.Command;
4+
import org.team1540.robot2024.Constants.Elevator.ElevatorState;
5+
import org.team1540.robot2024.subsystems.elevator.Elevator;
6+
7+
public class ElevatorSetpointCommand extends Command {
8+
private final Elevator elevator;
9+
private final ElevatorState state;
10+
public ElevatorSetpointCommand(Elevator elevator, ElevatorState state) {
11+
this.elevator = elevator;
12+
this.state = state;
13+
addRequirements(elevator);
14+
}
15+
@Override
16+
public void initialize() {
17+
elevator.goToSetpoint(state.heightMeters);
18+
}
19+
20+
@Override
21+
public void end(boolean interrupted) {
22+
elevator.stop();
23+
}
24+
@Override
25+
public boolean isFinished() {
26+
return elevator.isAtSetpoint();
27+
}
28+
29+
}

src/main/java/org/team1540/robot2024/subsystems/elevator/Elevator.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ public void periodic(){
2121
Logger.processInputs("Elevator", elevatorInputs);
2222

2323
}
24-
// do positional control stuff here
2524

2625
public void goToSetpoint(double setpointMeters) {
2726
this.setpointRots = setpointMeters / Constants.Elevator.SOCKET_DIAMETER;
@@ -32,6 +31,10 @@ public boolean isAtSetpoint() {
3231
return elevatorInputs.positionMeters == setpointRots;
3332
}
3433

34+
public void setVoltage(double voltage) {
35+
elevatorIO.setVoltage(voltage);
36+
}
37+
3538
public void stop() {
3639
elevatorIO.stop();
3740
}

src/main/java/org/team1540/robot2024/subsystems/elevator/ElevatorIO.java

+2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ default void updateInputs(ElevatorIOInputs inputs) {}
1717

1818
default void setSetpoint(double position) {}
1919

20+
default void setVoltage(double voltage) {}
21+
2022
default void stop() {}
2123

2224

src/main/java/org/team1540/robot2024/subsystems/elevator/ElevatorIOTalonFX.java

+5
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,11 @@ public void setSetpoint(double position) {
8585
leader.setControl(motionMagicOut.withPosition(position));
8686
}
8787

88+
@Override
89+
public void setVoltage(double voltage) {
90+
leader.set(voltage*12);
91+
}
92+
8893
@Override
8994
public void stop() {
9095
leader.set(0);

0 commit comments

Comments
 (0)