001/* 002 * Copyright (C) Photon Vision. 003 * 004 * This program is free software: you can redistribute it and/or modify 005 * it under the terms of the GNU General Public License as published by 006 * the Free Software Foundation, either version 3 of the License, or 007 * (at your option) any later version. 008 * 009 * This program is distributed in the hope that it will be useful, 010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 012 * GNU General Public License for more details. 013 * 014 * You should have received a copy of the GNU General Public License 015 * along with this program. If not, see <https://www.gnu.org/licenses/>. 016 */ 017 018package org.photonvision.vision.pipeline; 019 020import com.fasterxml.jackson.annotation.JsonTypeName; 021import org.photonvision.common.util.numbers.IntegerCouple; 022import org.photonvision.vision.apriltag.AprilTagFamily; 023import org.photonvision.vision.target.TargetModel; 024 025@JsonTypeName("ArucoPipelineSettings") 026public class ArucoPipelineSettings extends AdvancedPipelineSettings { 027 public AprilTagFamily tagFamily = AprilTagFamily.kTag36h11; 028 029 public IntegerCouple threshWinSizes = new IntegerCouple(11, 91); 030 public int threshStepSize = 40; 031 public double threshConstant = 10; 032 public boolean debugThreshold = false; 033 034 public boolean useCornerRefinement = true; 035 public int refineNumIterations = 30; 036 public double refineMinErrorPx = 0.005; 037 038 public boolean useAruco3 = false; 039 public double aruco3MinMarkerSideRatio = 0.02; 040 public int aruco3MinCanonicalImgSide = 32; 041 042 public boolean doMultiTarget = false; 043 public boolean doSingleTargetAlways = false; 044 045 public ArucoPipelineSettings() { 046 super(); 047 pipelineType = PipelineType.Aruco; 048 outputShowMultipleTargets = true; 049 targetModel = TargetModel.kAprilTag6p5in_36h11; 050 cameraExposureRaw = 20; 051 cameraAutoExposure = true; 052 ledMode = false; 053 } 054}