Skip to content

Commit 8f70017

Browse files
Fix bugs and add alignment value
- Weston J
1 parent 2f1d4d1 commit 8f70017

File tree

5 files changed

+126
-41
lines changed

5 files changed

+126
-41
lines changed

src/main/deploy/config.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ distanceMultiplierForwards = 0.65
2626
distanceMultiplierStafing = 0.07
2727
distanceMultiplierTurning = 0.4
2828

29+
LEFT_OFFSET = 8.2
30+
RIGHT_OFFSET = -8.2
31+
CENTER_OFFSET = 0.0
32+
2933
LIMELIGHT_INIT_FAILED_TIME = 0.4
3034

3135
STOP_MOVING_THERSHOLD = 0.58

src/main/java/frc/robot/Robot.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,12 +170,12 @@ public void teleopPeriodic() {
170170
if (leftBumper || rightBumper) {
171171
System.out.println("Driving to april tag...");
172172

173-
mVisionTeleopCommand.mOffset = leftBumper ? 8.2 : -8.2;
173+
mVisionTeleopCommand.setOffset(leftBumper ? Vision.Alignment.LEFT : Vision.Alignment.RIGHT);
174174

175175
kDriveTeleopCommand.cancel();
176176
mVisionTeleopCommand.schedule();
177177

178-
} else if (kDriveController.getLeftBumperButtonReleased()) {
178+
} else if (kDriveController.getLeftBumperButtonReleased() || kDriveController.getRightBumperButtonReleased()) {
179179
mVisionTeleopCommand.cancel();
180180
kDriveTeleopCommand.schedule();
181181
System.out.println("Cancel");

src/main/java/frc/robot/commands/visionDriveCommand/VisionAutoCommand.java

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,19 @@
1414

1515
public class VisionAutoCommand extends Command {
1616

17-
// config
17+
// vars
18+
19+
private double mOffset;
1820

1921
private final Vision kVisionSubsystem;
2022
private final Drivetrain kDrivetrain;
2123
private final Time kRobotPeriod;
2224

2325
private boolean mIsDoneStafing = false;
2426
private boolean mIsDoneMoving = false;
27+
private boolean mDoneAutoInit = false;
2528

26-
private final int mTargetDriveAprilTagId;
29+
private int mTargetDriveAprilTagId;
2730

2831
private AngularVelocity mAngularVelocity = Units.RadiansPerSecond.zero();
2932
private LinearVelocity mStafeVelocity = Units.MetersPerSecond.zero();
@@ -34,9 +37,10 @@ public class VisionAutoCommand extends Command {
3437
public VisionAutoCommand(
3538
Vision visionSubsystem,
3639
Drivetrain drivetrain,
37-
int targetDriveAprilTagId,
40+
int targetTagId1,
41+
int targetTagId2,
3842
Time period) {
39-
mTargetDriveAprilTagId = targetDriveAprilTagId;
43+
4044
kVisionSubsystem = visionSubsystem;
4145
kDrivetrain = drivetrain;
4246
kRobotPeriod = period;
@@ -46,6 +50,10 @@ public VisionAutoCommand(
4650
addRequirements(kDrivetrain, kVisionSubsystem);
4751
}
4852

53+
public void setOffset(Vision.Alignment alignment) {
54+
mOffset = mConfig.getOffset(alignment);
55+
}
56+
4957
@Override
5058
public void initialize() {
5159
// reset some vars
@@ -60,7 +68,7 @@ public void execute() {
6068
if (mTargetDriveAprilTagId == -1)
6169
return;
6270

63-
Vision.VisionTagData data = kVisionSubsystem.robotDriveToAprilTag(mTargetDriveAprilTagId, 0.0);
71+
Vision.VisionTagData data = kVisionSubsystem.robotDriveToAprilTag(mTargetDriveAprilTagId, mOffset);
6472

6573
double heading = kDrivetrain.getHeading().in(Units.Degree);
6674
double targetHeading = fmod(Vision.rotations[mTargetDriveAprilTagId - 1], 360.0, 180.0);
@@ -172,11 +180,11 @@ public void execute() {
172180

173181
@Override
174182
public boolean isFinished() {
175-
if (mIsDoneMoving && !mIsDoneStafing) {
176-
System.out.println("stafing is holding us up");
177-
} else if (mIsDoneStafing && !mIsDoneMoving) {
178-
System.out.println("moving is holding us up");
179-
}
183+
// if (mIsDoneMoving && !mIsDoneStafing) {
184+
// System.out.println("stafing is holding us up");
185+
// } else if (mIsDoneStafing && !mIsDoneMoving) {
186+
// System.out.println("moving is holding us up");
187+
// }
180188

181189
if ((mIsDoneStafing && mIsDoneMoving)) {
182190

src/main/java/frc/robot/commands/visionDriveCommand/VisionTeleopCommand.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515

1616
public class VisionTeleopCommand extends Command {
1717

18-
// config
18+
// vars
1919

20-
public double mOffset;
20+
private double mOffset;
2121

2222
private final Vision kVisionSubsystem;
2323
private final Drivetrain kDrivetrain;
@@ -53,6 +53,10 @@ public VisionTeleopCommand(
5353
addRequirements(kDrivetrain, kVisionSubsystem);
5454
}
5555

56+
public void setOffset(Vision.Alignment alignment) {
57+
mOffset = mConfig.getOffset(alignment);
58+
}
59+
5660
@Override
5761
public void initialize() {
5862
// reset some vars
@@ -100,6 +104,7 @@ public void execute() {
100104

101105
kVisionSubsystem.setFilter(-1);
102106

107+
103108
// System.out.println("[drive progress] " + Boolean.toString(mIsDoneMoving) + ",
104109
// " + Boolean.toString(mIsDoneStafing));
105110

@@ -200,11 +205,11 @@ public void execute() {
200205
public boolean isFinished() {
201206
boolean limelightInitFailed = (kTimer.get() >= mConfig.LIMELIGHT_INIT_FAILED_TIME && !mDoneInitTeleop);
202207

203-
if (mIsDoneMoving && !mIsDoneStafing) {
204-
System.out.println("stafing is holding us up");
205-
} else if (mIsDoneStafing && !mIsDoneMoving) {
206-
System.out.println("moving is holding us up");
207-
}
208+
// if (mIsDoneMoving && !mIsDoneStafing) {
209+
// System.out.println("stafing is holding us up");
210+
// } else if (mIsDoneStafing && !mIsDoneMoving) {
211+
// System.out.println("moving is holding us up");
212+
// }
208213

209214
if (limelightInitFailed) {
210215
System.out.println("Limelight init failed");

0 commit comments

Comments
 (0)