Skip to content

Commit 5b740b5

Browse files
authored
Merge pull request #224 from strykeforce/rabsamu/vision-tuning
Rabsamu/vision tuning
2 parents 81a6e40 + 0d4291e commit 5b740b5

File tree

4 files changed

+85
-0
lines changed

4 files changed

+85
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package frc.team2767.deepspace.command.vision;
2+
3+
import edu.wpi.first.wpilibj.command.InstantCommand;
4+
import frc.team2767.deepspace.Robot;
5+
import frc.team2767.deepspace.subsystem.VisionSubsystem;
6+
import org.slf4j.Logger;
7+
import org.slf4j.LoggerFactory;
8+
9+
public class VisionTuneCommand extends InstantCommand {
10+
11+
private static final VisionSubsystem VISION = Robot.VISION;
12+
private final Logger logger = LoggerFactory.getLogger(this.getClass());
13+
private int tuningID;
14+
15+
public VisionTuneCommand(int tuningID) {
16+
this.tuningID = tuningID;
17+
18+
setRunWhenDisabled(true);
19+
requires(VISION);
20+
}
21+
22+
@Override
23+
protected void initialize() {
24+
VISION.enableLights(true);
25+
VISION.runTuning(tuningID);
26+
}
27+
28+
@Override
29+
protected boolean isFinished() {
30+
return VISION.tuneFinished();
31+
}
32+
33+
@Override
34+
protected void end() {
35+
VISION.enableLights(false);
36+
}
37+
}

src/main/java/frc/team2767/deepspace/control/Controls.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ public class Controls {
55
private final DriverControls driverControls = new DriverControls(0);
66
private final XboxControls xboxControls = new XboxControls(1);
77
private final SmartDashboardControls smartDashboardControls = new SmartDashboardControls();
8+
private final RoborioControls roborioControls = new RoborioControls();
89

910
public Controls() {
1011
// new SmartDashboardControls();
@@ -21,4 +22,8 @@ public XboxControls getXboxControls() {
2122
public SmartDashboardControls getSmartDashboardControls() {
2223
return smartDashboardControls;
2324
}
25+
26+
public RoborioControls getRoborioControls() {
27+
return roborioControls;
28+
}
2429
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package frc.team2767.deepspace.control;
2+
3+
import edu.wpi.first.wpilibj.DigitalInput;
4+
import edu.wpi.first.wpilibj.RobotController;
5+
import edu.wpi.first.wpilibj.buttons.Trigger;
6+
import frc.team2767.deepspace.command.vision.VisionTuneCommand;
7+
8+
public class RoborioControls {
9+
10+
public RoborioControls() {
11+
DigitalInput tuneTrigger = new DigitalInput(9);
12+
Trigger visionButton =
13+
new Trigger() {
14+
@Override
15+
public boolean get() {
16+
return tuneTrigger.get();
17+
}
18+
};
19+
Trigger userButton =
20+
new Trigger() {
21+
@Override
22+
public boolean get() {
23+
return RobotController.getUserButton();
24+
}
25+
};
26+
27+
userButton.whenActive(new VisionTuneCommand(0));
28+
visionButton.whenActive(new VisionTuneCommand(1));
29+
}
30+
}

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ public class VisionSubsystem extends Subsystem implements Item {
5151
private NetworkTableEntry rangeEntry;
5252
private NetworkTableEntry cameraIDEntry;
5353
private NetworkTableEntry targetYawEntry;
54+
private NetworkTableEntry tuningEntry;
55+
private NetworkTableEntry tuningFinished;
5456
private double rawRange;
5557
private double rawBearing;
5658
private double correctedRange;
@@ -70,9 +72,12 @@ public VisionSubsystem() {
7072
rangeEntry = table.getEntry("camera_range");
7173
cameraIDEntry = table.getEntry("camera_id");
7274
targetYawEntry = table.getEntry("target_yaw");
75+
tuningEntry = table.getEntry("tuning_id");
76+
tuningFinished = table.getEntry("tuning_finished");
7377
targetYawEntry.setNumber(0.0);
7478
bearingEntry.setNumber(0.0);
7579
rangeEntry.setNumber(-1.0);
80+
tuningEntry.setNumber(-1.0);
7681

7782
UsbCamera usbCamera = cameraServer.startAutomaticCapture();
7883
logger.info("camera is connected = {}", usbCamera.isConnected());
@@ -141,6 +146,14 @@ public void setFieldDirection(FieldDirection direction) {
141146
logger.info("set direction to {}", direction);
142147
}
143148

149+
public void runTuning(int camID) {
150+
tuningEntry.setNumber(camID);
151+
}
152+
153+
public boolean tuneFinished() {
154+
return ((int) tuningFinished.getNumber(0) == 1);
155+
}
156+
144157
public void selectCamera() {
145158
VisionSubsystem.Camera camera;
146159
camera = Camera.LEFT;

0 commit comments

Comments
 (0)