Skip to content

Fix #256: Change pinocchio jacobian frame from LOCAL to LOCAL_WORLD_ALIGNED to match KDL#257

Draft
baconbrot wants to merge 1 commit into
ros-controls:masterfrom
baconbrot:framealignment
Draft

Fix #256: Change pinocchio jacobian frame from LOCAL to LOCAL_WORLD_ALIGNED to match KDL#257
baconbrot wants to merge 1 commit into
ros-controls:masterfrom
baconbrot:framealignment

Conversation

@baconbrot
Copy link
Copy Markdown

Description

See #256

Is this user-facing behavior change?

Yes, if a user is using the pinocchio plugin. The update will break their code and may cause unpredictable robot motions.

Did you use Generative AI?

Claude Code with Sonnet 4.6 for documentation, reference and code queries (i.e. KDL and pinocchio docu and source code lookups).

Additional Information

Adds an additional test to validate that all (current and future) kinematics_interface plugin implementations calculate the same results.

TODOs

  • Update jacobian frame
  • Add test with hardcoded expectations to validate that each plugin computes the same results
  • Update docstrings with explicit hint for the used frames

@baconbrot
Copy link
Copy Markdown
Author

Now there is a problem with the plugin_function_reduced_model_base test:

EXPECT_THAT(delta_x, MatrixNear(delta_x_est, 0.02));

It seems that the pinocchio WORLD frame is not updated to be coincident with the new root link frame of the urdf.
KDL seems to always use the chain root as WORLD, while pinocchio keeps using the absolute 0 of the urdf root, even when a different link is selected as the chain root.

If this is correct, then all methods from the pinocchio implementation need additional transformations to be in the correct frame (i.e. rotations for jacobian and rotation+translation for link_transform).

@christophfroehlich
Copy link
Copy Markdown
Member

I haven't used pinocchio that much, but I remember that I had to deal with such problems it when I ported the pinocchio plugin to this repository. Why did the tests succeed earlier with the old pinocchio method?

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.

KDL and pinocchio use different reference frames for jacobian calculation result

2 participants