Skip to content

refactor(holistic_fusion): remove the holistic yaw factor - #56

Merged
nubertj merged 5 commits into
mainfrom
julian/yaw_in_world
Oct 9, 2026
Merged

nubertj merged 5 commits into
mainfrom
julian/yaw_in_world

Conversation

@nubertj

@nubertj nubertj commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator

Motivation

  • holistic_fusion#52 (fuse absolute yaw through the fixed-frame alignment) added a holistic yaw factor that took the yaw of the sensor in a fixed frame M.
  • A yaw in a tilted M has no clear meaning. Taking it about the z-axis of M pulls on roll and pitch. Taking it about the z-axis of the world ignores the tilt of M.
  • A yaw measurement has no roll and pitch. So no form of it can constrain only the rotation about the z-axis of the world.

Main change

  • Remove the holistic yaw factor, its expression and its test.
  • addUnaryYawAbsoluteMeasurement() is again the classic yaw factor in the world frame. addUnaryYawAbsoluteClassicMeasurement() is removed.
  • Orientation measurements in a fixed frame use addUnaryHeadingAbsoluteMeasurement() from holistic_fusion#55 (heading factor that is defined for every attitude).

Test plan

  • CI builds for ROS 1 Noetic and ROS 2 Humble. yaw_factor_test still covers the classic yaw factor.

🤖 Generated with Claude Code. Co-authored with @nubertj.

…orld

The holistic yaw factor took the Euler yaw of R_M_S = R_W_M^-1 * R_W_S. With a tilted fixed frame M, that yaw is about
the z-axis of M, so the factor pulled on the roll and pitch of the state, which gravity observes.
The yaw of S is now taken in the world, relative to the yaw of R_W_M. This assumes a level M.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@nubertj nubertj self-assigned this Oct 9, 2026
nubertj and others added 2 commits October 8, 2026 17:34
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts:
#	docs/docs_src/read_the_docs/9_changelog.md
@nubertj
nubertj marked this pull request as ready for review October 9, 2026 01:00
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A yaw in a tilted fixed frame has no clear meaning. addUnaryYawAbsoluteMeasurement() is again the classic yaw factor in the
world frame. Orientation measurements in a fixed frame use addUnaryHeadingAbsoluteMeasurement().

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@nubertj nubertj changed the title fix(holistic_fusion): take the holistic yaw about the z-axis of the world refactor(holistic_fusion): remove the holistic yaw factor Oct 9, 2026

@nubertj nubertj left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

looks good

@nubertj
nubertj added this pull request to stack #58 October 9, 2026 01:32
@nubertj
nubertj merged commit dc7c417 into main Oct 9, 2026
4 checks passed
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.

1 participant