Repository navigation
Conversation
nubertj
added this pull request to stack #58
October 9, 2026 01:32
nubertj
marked this pull request as ready for review
October 9, 2026 01:33
nubertj
force-pushed
the
julian/init_heading_and_position
branch
from
October 9, 2026 01:37
ae38faa to
beb7b75
Compare
…asurements with frames initHeadingAndPosition takes a measured pose in a fixed frame. It sets the heading about the z-axis of the world, so it is defined for every attitude, like the heading factor. initYawAndPosition takes a yaw and a position measurement in fixed frames. The yaw is relative to the yaw of R_W_M, like the yaw factor, and the transfer to the IMU accounts for the tilt of the IMU and of the mount. initHeadingAndPositionAtStart starts the world at the gravity-aligned start pose. A measurement in a fixed frame other than the world goes through the guess of T_W_M. The frameless initYawAndPosition and initYawAndPositionInWorld are removed and the examples use the new functions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A yaw in a tilted fixed frame has no clear meaning, so initYawAndPosition requires the yaw in the world frame, like the yaw factor, and throws for a yaw in another fixed frame. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
nubertj
force-pushed
the
julian/init_heading_and_position
branch
from
October 9, 2026 01:53
beb7b75 to
5a10bdb
Compare
…ingAndPositionAsIdentity Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
initYawAndPositionInWorldand the framelessinitYawAndPositiontook the measurement as if it were in the world. The fixed frame was ignored.Main change
initHeadingAndPosition(T_M_S)sets the heading about the z-axis of the world, the same quantity as the heading factor (feat(holistic_fusion): add a heading factor that is defined for every attitude #55). It is closed form (twist of the offset about world z) and defined for every attitude.initYawAndPosition(yaw_W_S1, M_t_M_S2)takes the yaw in the world frame, as the yaw factor after refactor(holistic_fusion): remove the holistic yaw factor #56 (remove the holistic yaw factor). A yaw in another fixed frame throws. The position can be in a fixed frame.initHeadingAndPositionAsIdentity()sets the heading and the position of the initialization frame to identity, for setups without an absolute reference. It replaces the dummy identity measurements.initWorldFrameToFixedFrameTransform(), or identity, so the world starts at M. Roll and pitch always stay with the IMU alignment.initYawAndPositionandinitYawAndPositionInWorldare removed. The ROS1 and ROS2 examples use the new functions.Test plan
init_heading_and_position_testthrough the FlexCode Bazel build:T_W_MguessT_W_Mmatch, roll and pitch stay with gravitygraph_config_testpasses.🤖 Generated with Claude Code. Co-authored with @nubertj.