Skip to content

Conversation

@flferretti
Copy link
Collaborator

@flferretti flferretti commented Sep 15, 2025

This PR introduces a configuration option to disable joint friction in the actuation model.

Fix #455


📚 Documentation preview 📚: https://jaxsim--465.org.readthedocs.build//465/

@flferretti flferretti requested a review from xela-95 as a code owner September 15, 2025 12:01
@flferretti flferretti self-assigned this Sep 15, 2025
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Benchmark

Benchmark suite Current: 2d7f3fe Previous: cb36385 Ratio
tests/test_benchmark.py::test_forward_dynamics_aba[1] 389.38406527606395 iter/sec (stddev: 0.000008541688138190175) 386.2552251710958 iter/sec (stddev: 0.00020833313469613508) 0.99
tests/test_benchmark.py::test_forward_dynamics_aba[128] 29.363416688876676 iter/sec (stddev: 0.00011472256890685029) 25.623251572538486 iter/sec (stddev: 0.000628276488211365) 0.87
tests/test_benchmark.py::test_free_floating_bias_forces[1] 361.507590743151 iter/sec (stddev: 0.000008949168750666668) 329.6208935032452 iter/sec (stddev: 0.00017678390636095912) 0.91
tests/test_benchmark.py::test_free_floating_bias_forces[128] 16.316994451368135 iter/sec (stddev: 0.000206848320019473) 14.042023282252773 iter/sec (stddev: 0.0004701444679618353) 0.86
tests/test_benchmark.py::test_forward_kinematics[1] 456.36150470798736 iter/sec (stddev: 0.000007750144673649783) 505.33330250290584 iter/sec (stddev: 0.00003595675660629741) 1.11
tests/test_benchmark.py::test_forward_kinematics[128] 31.899169516802758 iter/sec (stddev: 0.00011727238574123531) 29.344980191633002 iter/sec (stddev: 0.00036979712165659257) 0.92
tests/test_benchmark.py::test_free_floating_mass_matrix[1] 183.31051782257921 iter/sec (stddev: 0.000045040779429697924) 204.56693174871816 iter/sec (stddev: 0.0008038774133928276) 1.12
tests/test_benchmark.py::test_free_floating_mass_matrix[128] 177.2046283539999 iter/sec (stddev: 0.000030038286129303515) 185.32420162463208 iter/sec (stddev: 0.001038192142422702) 1.05
tests/test_benchmark.py::test_free_floating_jacobian[1] 533.973127680934 iter/sec (stddev: 0.000007524560316569543) 584.370298139834 iter/sec (stddev: 0.00001860199318220017) 1.09
tests/test_benchmark.py::test_free_floating_jacobian[128] 528.2777334257476 iter/sec (stddev: 0.000006114053714365089) 544.3999181675149 iter/sec (stddev: 0.00023044493810550008) 1.03
tests/test_benchmark.py::test_free_floating_jacobian_derivative[1] 415.59082723556986 iter/sec (stddev: 0.000011752128520116807) 410.73560028011394 iter/sec (stddev: 0.00022687143203532596) 0.99
tests/test_benchmark.py::test_free_floating_jacobian_derivative[128] 302.4950413840594 iter/sec (stddev: 0.000008453813511121021) 199.38111540598362 iter/sec (stddev: 0.001457819036270435) 0.66
tests/test_benchmark.py::test_soft_contact_model[1] 352.29928275603106 iter/sec (stddev: 0.000008727561667439654) 337.6366937284971 iter/sec (stddev: 0.00011127692295687577) 0.96
tests/test_benchmark.py::test_soft_contact_model[128] 29.85187305128929 iter/sec (stddev: 0.00008607250219281915) 26.884777773429075 iter/sec (stddev: 0.0006199761164350777) 0.90
tests/test_benchmark.py::test_rigid_contact_model[1] 40.38111547047915 iter/sec (stddev: 0.000059288341361839524) 31.251271243159007 iter/sec (stddev: 0.007996216837436577) 0.77
tests/test_benchmark.py::test_rigid_contact_model[128] 0.7260464373742284 iter/sec (stddev: 0.0001799556526772492) 0.3460028427282277 iter/sec (stddev: 0.0005242995729556135) 0.48
tests/test_benchmark.py::test_relaxed_rigid_contact_model[1] 74.7167610122112 iter/sec (stddev: 0.00003247361368281182) 79.40038194340299 iter/sec (stddev: 0.002071043703591531) 1.06
tests/test_benchmark.py::test_relaxed_rigid_contact_model[128] 6.397892757844144 iter/sec (stddev: 0.00021190074764006962) 6.11243560362339 iter/sec (stddev: 0.0013425887323580527) 0.96
tests/test_benchmark.py::test_simulation_step[1] 69.3364470812819 iter/sec (stddev: 0.000031007481062940205) 69.93411634859267 iter/sec (stddev: 0.0027247172648478526) 1.01
tests/test_benchmark.py::test_simulation_step[128] 5.398354206445405 iter/sec (stddev: 0.0003150641660148449) 5.076712249345317 iter/sec (stddev: 0.00163782888871275) 0.94

This comment was automatically generated by workflow using github-action-benchmark.

@flferretti flferretti force-pushed the disable_joint_friction branch from ae1b016 to 2d7f3fe Compare September 15, 2025 12:39
torque_max: jtp.Float = dataclasses.field(default=3000.0) # (Nm)
omega_th: jtp.Float = dataclasses.field(default=30.0) # (rad/s)
omega_max: jtp.Float = dataclasses.field(default=100.0) # (rad/s)
friction: Static[bool] = dataclasses.field(default=True)
Copy link
Contributor

Choose a reason for hiding this comment

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

maybe we can call it enable_friction or consider_friction ? to avoid misinterpretation of the value

Copy link
Member

@xela-95 xela-95 left a comment

Choose a reason for hiding this comment

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

Thanks! Nothing to add to @CarlottaSartore comments

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.

Add flag to disable joint friction

4 participants