This repository has been archived by the owner on Oct 8, 2022. It is now read-only.
/
RobotContainer.java
62 lines (53 loc) · 2.58 KB
/
RobotContainer.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package com.rambots4571.deepspace.robot;
import com.ctre.phoenix.motorcontrol.NeutralMode;
import com.rambots4571.deepspace.robot.subsystem.Drivetrain;
import com.rambots4571.rampage.joystick.DriveStick;
import com.rambots4571.rampage.joystick.Gamepad;
import edu.wpi.first.wpilibj.controller.PIDController;
import edu.wpi.first.wpilibj.controller.RamseteController;
import edu.wpi.first.wpilibj.controller.SimpleMotorFeedforward;
import edu.wpi.first.wpilibj.geometry.Pose2d;
import edu.wpi.first.wpilibj.geometry.Rotation2d;
import edu.wpi.first.wpilibj.geometry.Translation2d;
import edu.wpi.first.wpilibj.trajectory.Trajectory;
import edu.wpi.first.wpilibj.trajectory.TrajectoryGenerator;
import edu.wpi.first.wpilibj2.command.Command;
import edu.wpi.first.wpilibj2.command.RamseteCommand;
import java.util.List;
import static com.rambots4571.deepspace.robot.Constants.Controllers.*;
public class RobotContainer {
public static final DriveStick leftStick = new DriveStick(LEFT_STICK);
public static final DriveStick rightStick = new DriveStick(RIGHT_STICK);
public static final Gamepad gamepad = new Gamepad(GAMEPAD);
public RobotContainer() {
configureBindings();
}
private void configureBindings() {}
public Command followTrajectory(Trajectory trajectory) {
Drivetrain.getInstance().setNeutralMode(NeutralMode.Brake);
RamseteCommand ramseteCommand = new RamseteCommand(
trajectory,
Drivetrain.getInstance()::getPose,
new RamseteController(
Constants.Drive.kRamseteB,
Constants.Drive.kRamseteZeta),
new SimpleMotorFeedforward(
Constants.Drive.ksVolts,
Constants.Drive.kvVoltsSecPerMeter,
Constants.Drive.kaVoltSecSquaredPerMeter),
Drivetrain.getInstance().getKinematics(),
Drivetrain.getInstance()::getSpeeds,
new PIDController(Constants.Drive.kP, 0.0, Constants.Drive.kD),
new PIDController(Constants.Drive.kP, 0.0, Constants.Drive.kD),
Drivetrain.getInstance()::setVoltage,
Drivetrain.getInstance()
);
return ramseteCommand.andThen(() -> Drivetrain.getInstance().stop());
}
public Command testTraj() {
Trajectory trajectory = TrajectoryGenerator.generateTrajectory(
List.of(new Pose2d(),
new Pose2d(2, 0, new Rotation2d())), Drivetrain.getInstance().getTrajectoryConfig());
return followTrajectory(trajectory);
}
}