Fix URDF importer dropping joint friction values - #1
Draft
fatimaanes wants to merge 1 commit into
Draft
Conversation
Joint friction parsed from <dynamics friction='...'> was stored in the joint data dict but never forwarded to add_joint_revolute(), add_joint_prismatic(), or the JointDofConfig for planar (D6) joints. This adds the friction= parameter to all three joint creation paths and includes tests verifying friction values round-trip through URDF import.
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.
Description
Joint friction values from
<dynamics friction="...">in URDF files are correctly parsed and stored in the joint data dictionary, but never forwarded toadd_joint_revolute(),add_joint_prismatic(), or theJointDofConfigfor planar (D6) joints. All imported joints silently get zero friction regardless of their URDF specification.Changes
joint_friction = joint["friction"]alongsidejoint_dampingfriction=joint_frictiontoadd_joint_revolute()andadd_joint_prismatic()friction=joint_frictionto bothJointDofConfiginstances for planar joints[Unreleased] > FixedTests
test_joint_friction_parsed_from_urdf: verifies friction values (0.25 revolute, 0.75 prismatic) round-trip through URDF importtest_joint_friction_defaults_to_zero: verifies joints without<dynamics friction>default to 0.0Impact
Any URDF robot with non-zero joint friction (common for realistic manipulators) was simulating with zero friction on all joints. This fix is backward-compatible — joints without friction specifications continue to default to 0.0.