diff --git a/photon-client/src/store/index.js b/photon-client/src/store/index.js
index fc0cc2e54..3d76aaa65 100644
--- a/photon-client/src/store/index.js
+++ b/photon-client/src/store/index.js
@@ -97,6 +97,8 @@ export default new Vuex.Store({
debug: false,
refineEdges: true,
numIterations: 1,
+ decisionMargin: 0,
+ hammingDist: 0,
}
}
],
diff --git a/photon-client/src/views/PipelineViews/AprilTagTab.vue b/photon-client/src/views/PipelineViews/AprilTagTab.vue
index b07d6eba7..aa842868b 100644
--- a/photon-client/src/views/PipelineViews/AprilTagTab.vue
+++ b/photon-client/src/views/PipelineViews/AprilTagTab.vue
@@ -7,7 +7,18 @@
item-color="secondary"
label="Select target family"
:items="familyList"
- @input="handlePipelineUpdate('tagFamily', targetList.indexOf(selectedModel))"
+ @input="handlePipelineUpdate('tagFamily', familyList.indexOf(selectedFamily))"
+ />
+
+
+ ();
for (DetectionResult detection : tagDetectionPipeResult.output) {
+ // TODO this should be in a pipe, not in the top level here (Matt)
+ if (detection.getDecisionMargin() < settings.decisionMargin) continue;
+ if (detection.getHamming() > settings.hammingDist) continue;
+
// populate the target list
// Challenge here is that TrackedTarget functions with OpenCV Contour
TrackedTarget target =
diff --git a/photon-core/src/main/java/org/photonvision/vision/pipeline/AprilTagPipelineSettings.java b/photon-core/src/main/java/org/photonvision/vision/pipeline/AprilTagPipelineSettings.java
index c26f13bce..12d53d28d 100644
--- a/photon-core/src/main/java/org/photonvision/vision/pipeline/AprilTagPipelineSettings.java
+++ b/photon-core/src/main/java/org/photonvision/vision/pipeline/AprilTagPipelineSettings.java
@@ -32,6 +32,10 @@ public class AprilTagPipelineSettings extends AdvancedPipelineSettings {
public boolean refineEdges = true;
public int numIterations = 200;
+ // TODO is this a legit, reasonable default?
+ public int hammingDist = 1;
+ public int decisionMargin = 30;
+
// 3d settings
public AprilTagPipelineSettings() {
diff --git a/photon-core/src/main/java/org/photonvision/vision/target/TargetModel.java b/photon-core/src/main/java/org/photonvision/vision/target/TargetModel.java
index cc8cfc216..c6db947a7 100644
--- a/photon-core/src/main/java/org/photonvision/vision/target/TargetModel.java
+++ b/photon-core/src/main/java/org/photonvision/vision/target/TargetModel.java
@@ -108,7 +108,15 @@ public enum TargetModel implements Releasable {
new Point3(Units.inchesToMeters(3.25), Units.inchesToMeters(3.25), 0),
new Point3(Units.inchesToMeters(3.25), -Units.inchesToMeters(3.25), 0),
new Point3(-Units.inchesToMeters(3.25), -Units.inchesToMeters(3.25), 0)),
- Units.inchesToMeters(3.25 * 2));
+ Units.inchesToMeters(3.25 * 2)),
+ k6in_16h5( // Nominal edge length of 200 mm includes the white border, but solvePNP corners
+ // do not
+ List.of(
+ new Point3(-Units.inchesToMeters(3), Units.inchesToMeters(3), 0),
+ new Point3(Units.inchesToMeters(3), Units.inchesToMeters(3), 0),
+ new Point3(Units.inchesToMeters(3), -Units.inchesToMeters(3), 0),
+ new Point3(-Units.inchesToMeters(3), -Units.inchesToMeters(3), 0)),
+ Units.inchesToMeters(3 * 2));
@JsonIgnore private MatOfPoint3f realWorldTargetCoordinates;
@JsonIgnore private MatOfPoint3f visualizationBoxBottom = new MatOfPoint3f();
diff --git a/photon-server/src/main/resources/web/index.html b/photon-server/src/main/resources/web/index.html
index 451a1614c..f008dfd12 100644
--- a/photon-server/src/main/resources/web/index.html
+++ b/photon-server/src/main/resources/web/index.html
@@ -1 +1 @@
-PhotonVision
\ No newline at end of file
+