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 +

UI has not been copied!

\ No newline at end of file