Skip to content

Commit d4e4453

Browse files
committed
lineup command basic - not done
1 parent 6ee232b commit d4e4453

File tree

3 files changed

+78
-4
lines changed

3 files changed

+78
-4
lines changed

src/main/java/frc/robot/vision/VisionConfig.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,23 @@ public class VisionConfig {
9999

100100

101101
public class AlignmentConfig {
102+
public static final double THETA_kP = 3.0;
103+
public static final double THETA_kI = 0.0;
104+
public static final double THETA_kD = 0.0;
105+
106+
public static final double X_kP = 5.0;
107+
public static final double X_kI = 0.0;
108+
public static final double X_kD = 0.0;
109+
110+
public static final double Y_kP = 5.0;
111+
public static final double Y_kI = 0.0;
112+
public static final double Y_kD = 0.0;
113+
114+
102115
public static final Distance ALIGNMENT_TOLERANCE = Inches.of(0.5); //inches
103116
public static final LinearVelocity MAX_ALIGN_TRANSLATION_VELOCITY = TunerConstants.kSpeedAt12Volts.div(2);
104117
public static final LinearAcceleration MAX_ALIGN_TRANSLATION_ACCELERATION = MetersPerSecondPerSecond.of(6.0);
105-
public static final AngularVelocity MAX_ALIGH_ANGULAR_VELOCITY = RotationsPerSecond.of(1.25).times(0.75);
118+
public static final AngularVelocity MAX_ALIGN_ANGULAR_VELOCITY = RotationsPerSecond.of(1.25).times(0.75);
106119
public static final AngularAcceleration MAX_ALIGN_ANGULAR_ACCELERATION = RadiansPerSecondPerSecond.of(6.0 * Math.PI);
107120

108121
//TODO: MIGHT NEED TO PLAY AROUND WITH ALL THE POSES BELOW
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package frc.robot.vision.commands;
2+
3+
import static edu.wpi.first.units.Units.MetersPerSecond;
4+
import static edu.wpi.first.units.Units.MetersPerSecondPerSecond;
5+
import static edu.wpi.first.units.Units.RadiansPerSecond;
6+
import static edu.wpi.first.units.Units.RadiansPerSecondPerSecond;
7+
8+
import com.ctre.phoenix6.swerve.SwerveRequest;
9+
import com.ctre.phoenix6.swerve.SwerveModule.DriveRequestType;
10+
import com.ctre.phoenix6.swerve.SwerveModule.SteerRequestType;
11+
12+
import edu.wpi.first.math.controller.ProfiledPIDController;
13+
import edu.wpi.first.math.estimator.PoseEstimator;
14+
import edu.wpi.first.math.geometry.Pose2d;
15+
import edu.wpi.first.math.trajectory.TrapezoidProfile;
16+
import edu.wpi.first.wpilibj2.command.Command;
17+
import edu.wpi.first.wpilibj2.command.WaitCommand;
18+
import frc.robot.vision.PoseEstimatorSubsystem;
19+
import frc.robot.vision.VisionConfig;
20+
21+
public class VisionCommands {
22+
23+
public Command executeLineup() {
24+
Pose2d estimatedPose = PoseEstimatorSubsystem.getInstance().getCurrentPose();
25+
26+
//add ProfiledPID controllers for Translation and Rotation
27+
final TrapezoidProfile.Constraints TRANSLATION_CONSTRAINTS = new TrapezoidProfile.Constraints(
28+
VisionConfig.AlignmentConfig.MAX_ALIGN_TRANSLATION_VELOCITY.in(MetersPerSecond),
29+
VisionConfig.AlignmentConfig.MAX_ALIGN_TRANSLATION_ACCELERATION.in(MetersPerSecondPerSecond));
30+
31+
final TrapezoidProfile.Constraints THETA_CONSTRAINTS = new TrapezoidProfile.Constraints(
32+
VisionConfig.AlignmentConfig.MAX_ALIGN_ANGULAR_VELOCITY.in(RadiansPerSecond),
33+
VisionConfig.AlignmentConfig.MAX_ALIGN_ANGULAR_ACCELERATION.in(RadiansPerSecondPerSecond));
34+
35+
36+
final ProfiledPIDController xDistanceController = new ProfiledPIDController(
37+
VisionConfig.AlignmentConfig.X_kP,
38+
VisionConfig.AlignmentConfig.X_kI,
39+
VisionConfig.AlignmentConfig.X_kD,
40+
TRANSLATION_CONSTRAINTS);
41+
42+
final ProfiledPIDController yDistanceController = new ProfiledPIDController(
43+
VisionConfig.AlignmentConfig.Y_kP,
44+
VisionConfig.AlignmentConfig.Y_kI,
45+
VisionConfig.AlignmentConfig.Y_kD,
46+
TRANSLATION_CONSTRAINTS);
47+
48+
final ProfiledPIDController thetaController = new ProfiledPIDController(
49+
VisionConfig.AlignmentConfig.THETA_kP,
50+
VisionConfig.AlignmentConfig.THETA_kI,
51+
VisionConfig.AlignmentConfig.THETA_kD,
52+
THETA_CONSTRAINTS);
53+
54+
final SwerveRequest.RobotCentric robotCentricRequest = new SwerveRequest.RobotCentric()
55+
.withDriveRequestType(DriveRequestType.Velocity)
56+
.withSteerRequestType(SteerRequestType.MotionMagicExpo);
57+
58+
59+
return new WaitCommand(0);
60+
}
61+
62+
63+
64+
}

src/main/java/frc/robot/vision/commands/VisionLineup.java

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)