Class Vision.VisionConfig

java.lang.Object
frc.robot.subsystems.vision.Vision.VisionConfig
Enclosing class:
Vision

public static class Vision.VisionConfig extends Object
  • Constructor Details

    • VisionConfig

      public VisionConfig()
  • Method Details

    • getName

      public String getName()
    • getBackConfig

      public Limelight.LimelightConfig getBackConfig()
    • getLeftConfig

      public Limelight.LimelightConfig getLeftConfig()
    • getRightConfig

      public Limelight.LimelightConfig getRightConfig()
    • getTagPipeline

      public int getTagPipeline()
    • getSystemCoreCameras

      public Limelight.LimelightConfig[] getSystemCoreCameras()
    • getSystemCoreSharedTable

      public String getSystemCoreSharedTable()
      Table the SystemCore vision stack reads robot orientation from, for MegaTag2.
    • getOrinCameraNames

      public String[] 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

      public Transform3d[] 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

      public Transform3d 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 2026 forceIntegrateXY.
    • getSeedThetaStdDevDeg

      public double getSeedThetaStdDevDeg()
      Heading std-dev while seeding, degrees. From the 2026 forceIntegrateXY.
    • 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 within seedConfirmSpreadDeg, 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.