Skip to content

Comments

Merge development into v26.2-dev branch#147

Open
tbowers7 wants to merge 3 commits intov26.2-devfrom
develop
Open

Merge development into v26.2-dev branch#147
tbowers7 wants to merge 3 commits intov26.2-devfrom
develop

Conversation

@tbowers7
Copy link
Collaborator

Primary work on the develop branch has been the creation and debugging of the new Pose Buffer for odometric and vision melding. It still has some bugs to work out, but it's getting closer.

tbowers7 and others added 3 commits February 3, 2026 15:37
* Add vision examples from good teams
* WIP: Getting 254's vision code to compile
* FRC254's 2024 vision code builds! -- Next step is to mesh in the parts of the vision code I need for the circular vision buffer to the base vision subsystem.
* WIP: Adding SPAM's vision code
* SPAM / FRC180 vision now builds -- The vision subsystem from FRC180 / SPAM now builds within the 2486 code base.  Next steps are to figure out which parts of the various vision combination schemes I want to use and hack together something!
* Add 6328's 2025 drive-to-pose algorithm
* Make cleaner diff against Az-RBSI
* Update FRC254's vision to 2025 version
* Fix rebase error
* Clean non-ASCII characters
* Compilable Vision with pose buffering -- Create a pose buffer and use timestamps to match vision values with those from odometry to reduce jitter.  Also be able to define certain tags in whose location we trust more (e.g. HUB in 2026) in the event of field misshapenness.  Weave the new Vision structure together with the drivetrain to allow for timestamped pose insertion into the estimator.

---------

Co-authored-by: NutHouse coco-prog-3 <github@team2486.org>
* Clean up the Accelerometer / IMU subsystems -- Clean up the code, but also specifically allow the RIO or IMU to be "on its side" (i.e., Z is not necessarily "up").
* Clean up Drive.java
* Clean the Moudule modules a bit
* Clean non-ASCII characters
* Reduce drivebase periodic cycle time by using primitives
* Clean up the Vision module
* Was double-adding pose estimates -- The SIM mode was not separately gated behind an `else`, so REAL mode was double-adding pose estimates.

* Fix double-count of pose estimation; add kS for swerve turn

* Clean up the consumer syntax

* Add extra logging for when the vision pose doesn't work

* Call the pose estimator "TimedPose"

* Move the odometry queue draining into a VirtualSubsystem

* Clean up Subsystem defs

* Clean up the IMU code a little

* Clean up Drive and DriveOdometry code

* Commenting the Vision.java file

* PoseBuffer: Correctly align timestamps and poses -- That plot (purple exploding to tens of thousands of feet) is exactly what you see when the time-alignment math is applying the odometry delta in the wrong reference frame. The fused pose stays sane because it’s only aligning aw camera estimates (which are usually already close to odom), but the smoother repeatedly re-aligns already-fused field poses across a sliding window — and a
small frame mistake turns into a huge “ping-pong” once you do it over and over.

* 😮‍💨 Got it -- Got the pose buffering cleaned up and working.  Next step is to clean the code so that it's easy to read and clean up any extraneous additions.

* Clean up diff versus `main`

* Cleaning and making things line up.

* Cleaning up the pose buffering more -- Next step: clean up the logging to remove extraneous debug statements.

* Clean logging
@tbowers7 tbowers7 added bug Something isn't working enhancement New feature or request labels Feb 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant