Skip to content

Commit 0bcdacf

Browse files
authored
Merge pull request #235 from strykeforce/rkalnins/field-oriented-switching
Rkalnins/field oriented switching
2 parents ad6a888 + 68735bf commit 0bcdacf

File tree

8 files changed

+57
-10
lines changed

8 files changed

+57
-10
lines changed

src/main/java/frc/team2767/deepspace/Robot.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public void disabledInit() {
102102
public void autonomousInit() {
103103
BISCUIT.setPosition(BISCUIT.getPosition());
104104
DRIVE.sandstormAxisFlip(true);
105-
DRIVE.setEnableDriveAxisFlip(true);
105+
DRIVE.setAngleAdjustment(true);
106106
if (isAuton) {
107107
// sandstorm.start();
108108
} else {
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package frc.team2767.deepspace.command.approach;
2+
3+
import edu.wpi.first.wpilibj.command.InstantCommand;
4+
import frc.team2767.deepspace.Robot;
5+
import frc.team2767.deepspace.subsystem.DriveSubsystem;
6+
7+
public class FlipSandstormControlsCommand extends InstantCommand {
8+
9+
private static final DriveSubsystem DRIVE = Robot.DRIVE;
10+
private final boolean enable;
11+
12+
public FlipSandstormControlsCommand(boolean enable) {
13+
this.enable = enable;
14+
}
15+
16+
@Override
17+
protected void initialize() {
18+
DRIVE.sandstormAxisFlip(enable);
19+
}
20+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package frc.team2767.deepspace.command.approach;
2+
3+
import edu.wpi.first.wpilibj.DriverStation;
4+
import edu.wpi.first.wpilibj.command.ConditionalCommand;
5+
6+
public class SandstormSwapIfAutonConditionalCommand extends ConditionalCommand {
7+
8+
public SandstormSwapIfAutonConditionalCommand(boolean enable) {
9+
super(new FlipSandstormControlsCommand(enable));
10+
}
11+
12+
@Override
13+
protected boolean condition() {
14+
return DriverStation.getInstance().isAutonomous();
15+
}
16+
}

src/main/java/frc/team2767/deepspace/command/approach/VisionAutoAlignPickupCommand.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,9 @@ protected void execute() {
100100
if (isGood && onTarget) strafe = strafeError * kP_STRAFE * forward;
101101
else strafe = driveExpo.apply(controls.getStrafe());
102102

103-
DRIVE.drive(forward, strafeRateLimit.apply(strafe), yaw);
103+
double strafeOutput = strafeRateLimit.apply(strafe);
104+
logger.debug("{} {} {}", forward, strafeOutput, yaw);
105+
DRIVE.drive(forward, strafeOutput, yaw);
104106
}
105107

106108
@Override

src/main/java/frc/team2767/deepspace/command/approach/sequences/AutoHatchPickupCommandGroup.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
package frc.team2767.deepspace.command.approach.sequences;
22

33
import edu.wpi.first.wpilibj.command.CommandGroup;
4-
import frc.team2767.deepspace.command.approach.ApproachDirectionCommand;
5-
import frc.team2767.deepspace.command.approach.BallToHatchAutoSafetyCommand;
6-
import frc.team2767.deepspace.command.approach.HoldHeadingUntilSuctionCommand;
7-
import frc.team2767.deepspace.command.approach.VisionAutoAlignPickupCommand;
4+
import frc.team2767.deepspace.command.approach.*;
85
import frc.team2767.deepspace.command.biscuit.BiscuitConfigMotionAccelCommand;
96
import frc.team2767.deepspace.command.biscuit.BiscuitFastExecuteCommand;
107
import frc.team2767.deepspace.command.biscuit.ReleaseKrakenCommand;
@@ -21,6 +18,7 @@ public class AutoHatchPickupCommandGroup extends CommandGroup {
2118

2219
public AutoHatchPickupCommandGroup() {
2320
addSequential(new LogCommand("BEGIN AUTO HATCH PICKUP"));
21+
addSequential(new FlipSandstormControlsCommand(false));
2422
addSequential(new ApproachDirectionCommand());
2523
addSequential(new LightsOnCommand());
2624
addSequential(
@@ -41,6 +39,7 @@ public AutoHatchPickupCommandGroup() {
4139
addSequential(new HoldHeadingUntilSuctionCommand());
4240
addParallel(new BiscuitConfigMotionAccelCommand(BiscuitSubsystem.kSlowAccel));
4341
addParallel(new SetActionCommand(Action.PLACE));
42+
addSequential(new SandstormSwapIfAutonConditionalCommand(true));
4443
addSequential(new LogCommand("END AUTO HATCH PICKUP"));
4544
}
4645
}

src/main/java/frc/team2767/deepspace/command/approach/sequences/AutoHatchPlaceCommandGroup.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package frc.team2767.deepspace.command.approach.sequences;
22

33
import edu.wpi.first.wpilibj.command.CommandGroup;
4+
import frc.team2767.deepspace.command.approach.FlipSandstormControlsCommand;
45
import frc.team2767.deepspace.command.approach.HoldHeadingUntilCompressionCommand;
6+
import frc.team2767.deepspace.command.approach.SandstormSwapIfAutonConditionalCommand;
57
import frc.team2767.deepspace.command.approach.VisionAutoAlignPlaceCommand;
68
import frc.team2767.deepspace.command.biscuit.BiscuitExecutePlanCommand;
79
import frc.team2767.deepspace.command.biscuit.BiscuitPositionAboveCameraCommand;
@@ -21,6 +23,7 @@ public class AutoHatchPlaceCommandGroup extends CommandGroup {
2123
public AutoHatchPlaceCommandGroup(double gyroOffset) {
2224

2325
addSequential(new LogCommand("BEGIN AUTO HATCH PLACE"));
26+
addSequential(new FlipSandstormControlsCommand(false));
2427
addSequential(new LightsOnCommand());
2528
addSequential(
2629
new CommandGroup() {
@@ -35,6 +38,7 @@ public AutoHatchPlaceCommandGroup(double gyroOffset) {
3538
addSequential(new VisionAutoAlignPlaceCommand(gyroOffset));
3639
addSequential(new BiscuitExecutePlanCommand());
3740
addSequential(new HoldHeadingUntilCompressionCommand());
41+
addSequential(new SandstormSwapIfAutonConditionalCommand(true));
3842
addSequential(new LogCommand("END HATCH PLACE"));
3943
}
4044
}

src/main/java/frc/team2767/deepspace/command/teleop/InterruptCommand.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package frc.team2767.deepspace.command.teleop;
22

3+
import edu.wpi.first.wpilibj.DriverStation;
34
import edu.wpi.first.wpilibj.command.InstantCommand;
45
import frc.team2767.deepspace.Robot;
56
import frc.team2767.deepspace.subsystem.Action;
@@ -24,6 +25,10 @@ public InterruptCommand() {
2425

2526
@Override
2627
protected void initialize() {
28+
if (DriverStation.getInstance().isAutonomous()) {
29+
DRIVE.sandstormAxisFlip(true);
30+
}
31+
2732
DRIVE.setSlotConfig(DriveSubsystem.DriveTalonConfig.DRIVE_CONFIG);
2833
DRIVE.undoGyroOffset();
2934
BISCUIT.setMotionMagicAccel(BiscuitSubsystem.kSlowAccel);

src/main/java/frc/team2767/deepspace/subsystem/DriveSubsystem.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ public DriveSubsystem() {
5656
wheels = swerve.getWheels();
5757
}
5858

59-
public void sandstormAxisFlip(boolean enable) {
60-
swerve.setFieldOriented(!enable);
61-
setEnableDriveAxisFlip(enable);
59+
public void sandstormAxisFlip(boolean isCameraOriented) {
60+
swerve.setFieldOriented(!isCameraOriented);
61+
setEnableDriveAxisFlip(isCameraOriented);
6262
}
6363

6464
@Override
@@ -132,8 +132,9 @@ public void interruptPath() {
132132
pathController.interrupt();
133133
}
134134

135-
public void setEnableDriveAxisFlip(boolean enable) {
135+
private void setEnableDriveAxisFlip(boolean enable) {
136136
enableDriveAxisFlip = enable;
137+
logger.debug("driving is {} oriented", enable);
137138
}
138139

139140
public void setTargetYaw(double targetYaw) {

0 commit comments

Comments
 (0)