Skip to content

Commit dd37878

Browse files
alexander-mcdowellbrettle
authored andcommitted
Outreach mode (#106)
* more competition changes * hatch move back * disable characterized drive * Implement Outreach Mode * Set outreach mode to false by default
1 parent 899cf34 commit dd37878

6 files changed

Lines changed: 78 additions & 53 deletions

File tree

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ public void robotInit() {
5959
dt.setDefaultCommand(new TeleopDrive(dt, oi.leftJoy, oi.rightJoy));
6060
SmartDashboard.putNumber("Max Acceleration", dt.getMaxSpeed() / 1.0);
6161

62+
SmartDashboard.putBoolean("Outreach Mode", false);
6263
timey = new Timer();
6364
}
6465

Robot2019/src/main/java/frc/robot/commands/Climb.java

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
package frc.robot.commands;
99

1010
import edu.wpi.first.wpilibj.command.Command;
11+
import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;
1112
import frc.robot.subsystems.Climber;
1213
import frc.robot.subsystems.Lights;
1314
import frc.robot.subsystems.Drivetrain;
@@ -50,33 +51,35 @@ protected void initialize() {
5051
// Called repeatedly when this Command is scheduled to run
5152
@Override
5253
protected void execute() {
53-
switch (state) {
54-
case CLIMBING:
55-
dt.drive(backDrive, backDrive);
56-
climber.runClimber(climbUp);
57-
if (!climber.needToClimb()) {
58-
state = State.LEVELING;
54+
if (!SmartDashboard.getBoolean("Outreach Mode", false)) {
55+
switch (state) {
56+
case CLIMBING:
57+
dt.drive(backDrive, backDrive);
58+
climber.runClimber(climbUp);
59+
if (!climber.needToClimb()) {
60+
state = State.LEVELING;
61+
}
62+
if (robotOnPlatform())
63+
state = State.RETRACTING;
64+
break;
65+
case LEVELING:
66+
dt.drive(backDrive, backDrive);
67+
climber.runClimber(climbDown);
68+
if (!climber.canDrop()) {
69+
state = State.CLIMBING;
70+
}
71+
if (robotOnPlatform())
72+
state = State.RETRACTING;
73+
break;
74+
case RETRACTING:
75+
climber.runClimber(retract);
76+
if (climber.getEncDistance() <= retractGoal) {
77+
state = State.FINISHED;
78+
}
79+
break;
80+
case FINISHED:
81+
end();
5982
}
60-
if (robotOnPlatform())
61-
state = State.RETRACTING;
62-
break;
63-
case LEVELING:
64-
dt.drive(backDrive, backDrive);
65-
climber.runClimber(climbDown);
66-
if (!climber.canDrop()) {
67-
state = State.CLIMBING;
68-
}
69-
if (robotOnPlatform())
70-
state = State.RETRACTING;
71-
break;
72-
case RETRACTING:
73-
climber.runClimber(retract);
74-
if (climber.getEncDistance() <= retractGoal) {
75-
state = State.FINISHED;
76-
}
77-
break;
78-
case FINISHED:
79-
end();
8083
}
8184
}
8285

Robot2019/src/main/java/frc/robot/commands/ManualClimb.java

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -53,28 +53,30 @@ protected void initialize() {
5353
// Called repeatedly when this Command is scheduled to run
5454
@Override
5555
protected void execute() {
56-
double climbSpeed = manip.getRawAxis(climbJoyAxis);
56+
if (!SmartDashboard.getBoolean("Outreach Mode", false)) {
57+
double climbSpeed = manip.getRawAxis(climbJoyAxis);
5758

58-
// if (climbSpeed > 0 && climber.getEncDistance() >= climbDist) {
59-
// climbSpeed = 0;
60-
// } else if (climbSpeed < 0 && climber.getEncDistance() <= retractDist) {
61-
// climbSpeed = 0;
62-
// }
63-
64-
// climber soft stop to prevent bindinng
65-
if (climber.getEncDistance() > SmartDashboard.getNumber("Climber Max Height", 25) && (-climbSpeed) > SmartDashboard.getNumber("Climber Drive Limit", 0)) {
66-
climbSpeed = -SmartDashboard.getNumber("Climber Drive Limit", 0);
67-
}
59+
// if (climbSpeed > 0 && climber.getEncDistance() >= climbDist) {
60+
// climbSpeed = 0;
61+
// } else if (climbSpeed < 0 && climber.getEncDistance() <= retractDist) {
62+
// climbSpeed = 0;
63+
// }
64+
65+
// climber soft stop to prevent bindinng
66+
if (climber.getEncDistance() > SmartDashboard.getNumber("Climber Max Height", 25) && (-climbSpeed) > SmartDashboard.getNumber("Climber Drive Limit", 0)) {
67+
climbSpeed = -SmartDashboard.getNumber("Climber Drive Limit", 0);
68+
}
6869

69-
climber.runClimber(climbSpeed);
70+
climber.runClimber(climbSpeed);
7071

71-
double angle = climber.getAngle();
72-
SmartDashboard.putNumber("Current Angle", angle);
73-
if (angle > SmartDashboard.getNumber("Max Angle", 0)) {
74-
SmartDashboard.putNumber("Max Angle", angle);
75-
}
76-
if (angle < SmartDashboard.getNumber("Min Angle", 0)) {
77-
SmartDashboard.putNumber("Min Angle", angle);
72+
double angle = climber.getAngle();
73+
SmartDashboard.putNumber("Current Angle", angle);
74+
if (angle > SmartDashboard.getNumber("Max Angle", 0)) {
75+
SmartDashboard.putNumber("Max Angle", angle);
76+
}
77+
if (angle < SmartDashboard.getNumber("Min Angle", 0)) {
78+
SmartDashboard.putNumber("Min Angle", angle);
79+
}
7880
}
7981
}
8082

Robot2019/src/main/java/frc/robot/commands/MoveBack.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import edu.wpi.first.wpilibj.Timer;
1111
import edu.wpi.first.wpilibj.command.Command;
12+
import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;
1213
import frc.robot.subsystems.Drivetrain;
1314

1415
public class MoveBack extends Command {
@@ -34,7 +35,9 @@ protected void initialize() {
3435
// Called repeatedly when this Command is scheduled to run
3536
@Override
3637
protected void execute() {
37-
dt.drive(-1, -1);
38+
if (!SmartDashboard.getBoolean("Outreach Mode", false)) {
39+
dt.drive(-1, -1);
40+
}
3841
}
3942

4043
// Make this return true when this Command no longer needs to run execute()

Robot2019/src/main/java/frc/robot/commands/TeleopDrive.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ public class TeleopDrive extends Command {
1818

1919
double prevSpeed = 0, prevLeft = 0, prevRight = 0;
2020

21+
double outreachSpeed = 0.3;
22+
2123
/**
2224
* Handles all the teleoperated driving functionality
2325
*
@@ -113,7 +115,11 @@ private void arcadeDrive() {
113115
charDrive(left, right);
114116
} else {
115117
SmartDashboard.putBoolean("is in char drive", false);
116-
dt.drive(left, right);
118+
if (SmartDashboard.getBoolean("Outreach Mode", false)) {
119+
dt.drive(left * outreachSpeed, right * outreachSpeed);
120+
} else {
121+
dt.drive(left, right);
122+
}
117123
}
118124
}
119125

@@ -148,7 +154,11 @@ private void tankDrive() {
148154
if (SmartDashboard.getBoolean("Characterized Drive", false)) {
149155
charDrive(left, right);
150156
} else {
151-
dt.drive(left, right);
157+
if (SmartDashboard.getBoolean("Outreach Mode", false)) {
158+
dt.drive(left * outreachSpeed, right * outreachSpeed);
159+
} else {
160+
dt.drive(left, right);
161+
}
152162
}
153163
}
154164

@@ -212,7 +222,11 @@ private void charDrive(double left, double right) {
212222
SmartDashboard.putNumber("Right Volts", rightV);
213223
//System.out.println("LeftV: " + leftV + ", RightV: " + rightV);
214224

215-
dt.drive(leftV / maxV, rightV / maxV);
225+
if (SmartDashboard.getBoolean("Outreach Mode", false)) {
226+
dt.drive(leftV / maxV * outreachSpeed, rightV / maxV * outreachSpeed);
227+
} else {
228+
dt.drive(leftV / maxV, rightV / maxV);
229+
}
216230
dt.disableVoltageCompensation();
217231
}
218232

Robot2019/src/main/java/frc/robot/subsystems/Climber.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,12 @@ public Climber(VictorSP motor, Encoder enc, AHRS ahrs, DoubleSolenoid pistons) {
4242
}
4343

4444
public void toggleRails() {
45-
if (pistons.get() == DoubleSolenoid.Value.kForward) {
46-
pistons.set(DoubleSolenoid.Value.kReverse);
47-
} else {
48-
pistons.set(DoubleSolenoid.Value.kForward);
45+
if (!SmartDashboard.getBoolean("Outreach Mode", false)) {
46+
if (pistons.get() == DoubleSolenoid.Value.kForward) {
47+
pistons.set(DoubleSolenoid.Value.kReverse);
48+
} else {
49+
pistons.set(DoubleSolenoid.Value.kForward);
50+
}
4951
}
5052
}
5153

0 commit comments

Comments
 (0)