Skip to content

Conversation

jasondaming
Copy link
Member

@jasondaming jasondaming commented Oct 8, 2025

Summary

Creates a comprehensive guide for using AprilTags for robot pose estimation, addressing the lack of documentation on obtaining vision measurements for pose estimators.

Changes

New file: apriltag-pose-estimation.rst in vision processing section

  • Explains the complete process: detect tags → get tag pose → calculate robot pose → apply measurement
  • Documents PhotonVision's PhotonPoseEstimator with code examples in Java, C++, and Python
  • Documents Limelight's MegaTag with NetworkTables API usage
  • Important sections covering:
    • Timestamp handling (using capture time, not processing time)
    • Standard deviation scaling based on distance, tag count, and ambiguity
    • Rejecting bad measurements (no tags, high ambiguity, unrealistic poses)
  • Guidance for custom vision implementations

Modified: state-space-pose-estimators.rst

  • Replaced detailed vision measurement section with concise seealso link
  • Keeps pose estimator docs focused on the API, refers to vision docs for obtaining measurements

Modified: apriltag/index.rst

  • Added new article to table of contents

Organization

Per review feedback, vision measurement content now lives in vision processing docs (where teams look for vision guidance) rather than pose estimator docs (which focus on the API).

Fixes #1413

Adds comprehensive "Obtaining Vision Measurements" section explaining how to get robot pose estimates from vision systems like PhotonVision and Limelight for use with AddVisionMeasurement().

Fixes wpilibsuite#1413
.. important:: When using vision measurements, it's critical to:

- Use the **timestamp** from when the image was captured, not when it was processed
- Scale the **standard deviations** based on factors like distance from tags, number of tags seen, and tag ambiguity
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feels like it should be in the tuning pose estimators below.

@sciencewhiz
Copy link
Collaborator

Thinking about this more, I think most of this probably belongs in the vision processing docs, rather then here.

jasondaming and others added 2 commits October 13, 2025 20:32
Per review feedback, moved the detailed vision measurement information from the pose estimator docs to a new article in the vision processing section.

Changes:
- Created new apriltag-pose-estimation.rst in vision-processing/apriltag/
- Comprehensive guide covering PhotonVision, Limelight, and custom solutions
- Detailed sections on timestamps, standard deviations, and rejecting bad measurements
- Code examples in Java, C++, and Python for both libraries
- Updated apriltag/index.rst to include new article
- Replaced detailed section in state-space-pose-estimators.rst with a seealso link

The pose estimator docs now focus on the API usage, while the vision processing docs explain how to obtain the measurements.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Changed links in "See Also" section to anonymous hyperlinks (double
underscores) to avoid conflicts with similar link text used earlier in
the document.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Pose estimator article doesn't show usage

2 participants