Class Vision.VisionConfig
java.lang.Object
frc.robot.subsystems.vision.Vision.VisionConfig
- Enclosing class:
Vision
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondoubleLL-Back MT2 multi-tag trust while aiming; its far frames otherwise get 1.5 m.doubleTXMAN1: the Pigeon drifted about 10 deg a match, under the gross threshold, and shots went 5-9 deg right.doubledoubleintdoubleGross heading correction while enabled.doubledoubledoublegetName()double[]Per-camera std-dev multiplier (6328's camera factor); 1 until logs say otherwise.boolean[]Which cameras are plugged in.String[]Camera names in PhotonVision.int[]Tags every Orin camera should ignore at this event (a tag mounted wrong), until changed on the dashboard at/Vision/Orin/ExcludedTags.intintThe Jetson's image size, for the image-edge std-dev scaling.Camera mounts, robot frame (x fwd, y left, z up; negative pitch tilts up).doubleQuest frames older than this are stale (it runs at ~100 Hz).doubleA Quest frame whose motion since the previous frame differs from wheel odometry's by more than this is a tracking jump (re-localisation, re-origin) rather than motion.doubleFrames arriving within this long of a pose reset may predate it.intConsecutive seeding frames in which the best Limelight must have seeded the pose from two or more tags, with its heading holding withinseedConfirmSpreadDeg, before the seed counts as confirmed.doublePeak-to-peak spread (degrees) the MegaTag1 heading may show across the confirmation run.doubleHeading std-dev while seeding, degrees.doubleTranslation std-dev while seeding, metres.Table the SystemCore vision stack reads robot orientation from, for MegaTag2.intbooleanWhether the Jetson is on the robot; its alerts are off without it.
-
Constructor Details
-
VisionConfig
public VisionConfig()
-
-
Method Details
-
getName
-
getBackConfig
-
getLeftConfig
-
getRightConfig
-
getTagPipeline
public int getTagPipeline() -
getSystemCoreCameras
-
getOrinCameraNames
Camera names in PhotonVision. FM's Jetson has two cameras; add a name, mount, installed flag and factor to run another. -
getOrinCameraInstalled
public boolean[] getOrinCameraInstalled()Which cameras are plugged in. Only these raise camera alerts. -
getOrinRobotToCamera
Camera mounts, robot frame (x fwd, y left, z up; negative pitch tilts up). Position from CAD. Pitch, and orin-right's yaw, solved from TXMAN1 logs (Q13: 1318 multi-tag frames); the right bracket is toed 5.5 deg forward, as limelight-right's solve also shows. The Jetson's mount estimate (Vision/Orin/<camera>/Mount/*) checks height, pitch and roll. -
getOrinCameraFactors
public double[] getOrinCameraFactors()Per-camera std-dev multiplier (6328's camera factor); 1 until logs say otherwise. -
getOrinImageWidth
public int getOrinImageWidth()The Jetson's image size, for the image-edge std-dev scaling. -
getOrinImageHeight
public int getOrinImageHeight() -
getOrinExcludedTags
public int[] getOrinExcludedTags()Tags every Orin camera should ignore at this event (a tag mounted wrong), until changed on the dashboard at/Vision/Orin/ExcludedTags. -
isJetsonInstalled
public boolean isJetsonInstalled()Whether the Jetson is on the robot; its alerts are off without it. -
getRobotToQuest
-
getQuestResetSettleSeconds
public double getQuestResetSettleSeconds()Frames arriving within this long of a pose reset may predate it. -
getQuestMaxAgeSeconds
public double getQuestMaxAgeSeconds()Quest frames older than this are stale (it runs at ~100 Hz). -
getQuestMaxJumpMeters
public double getQuestMaxJumpMeters()A Quest frame whose motion since the previous frame differs from wheel odometry's by more than this is a tracking jump (re-localisation, re-origin) rather than motion. -
getSeedXyStdDev
public double getSeedXyStdDev()Translation std-dev while seeding, metres. From the 2026forceIntegrateXY. -
getSeedThetaStdDevDeg
public double getSeedThetaStdDevDeg()Heading std-dev while seeding, degrees. From the 2026forceIntegrateXY. -
getSeedConfirmLoops
public int getSeedConfirmLoops()Consecutive seeding frames in which the best Limelight must have seeded the pose from two or more tags, with its heading holding withinseedConfirmSpreadDeg, before the seed counts as confirmed. About a second at Limelight frame rates. This counts frames, not loops: a loop with no new frame neither extends nor breaks the run. -
getSeedConfirmSpreadDeg
public double getSeedConfirmSpreadDeg()Peak-to-peak spread (degrees) the MegaTag1 heading may show across the confirmation run. Four-tag heading holds to about a degree; a two-tag run that wanders past this is the geometry noise this exists to wait out, and the run starts over. -
getGrossHeadingErrorDeg
public double getGrossHeadingErrorDeg()Gross heading correction while enabled. 10 deg sits above the 5 to 8 deg that one camera's mount error can show. A single two-tag frame can read 15 deg off, so every multi-tag frame across the hold must be past the threshold. -
getGrossHeadingHoldSeconds
public double getGrossHeadingHoldSeconds() -
getGrossHeadingMaxLinearSpeed
public double getGrossHeadingMaxLinearSpeed() -
getGrossHeadingMaxOmega
public double getGrossHeadingMaxOmega() -
getBackHeadingErrorDeg
public double getBackHeadingErrorDeg()TXMAN1: the Pigeon drifted about 10 deg a match, under the gross threshold, and shots went 5-9 deg right. The median keeps one bad two-tag frame from setting the heading. -
getBackHeadingHoldSeconds
public double getBackHeadingHoldSeconds() -
getBackHeadingMinFrames
public int getBackHeadingMinFrames() -
getBackHeadingMaxErrorDeg
public double getBackHeadingMaxErrorDeg() -
getAimBackXyStdDev
public double getAimBackXyStdDev()LL-Back MT2 multi-tag trust while aiming; its far frames otherwise get 1.5 m.
-