jaxsim 0.6.2.dev225__tar.gz → 0.6.2.dev231__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/PKG-INFO +4 -8
  2. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/README.md +3 -7
  3. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/_version.py +2 -2
  4. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/rbda/contacts/rigid.py +1 -0
  5. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim.egg-info/PKG-INFO +4 -8
  6. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/tests/test_benchmark.py +4 -0
  7. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/.devcontainer/Dockerfile +0 -0
  8. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/.devcontainer/devcontainer.json +0 -0
  9. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/.gitattributes +0 -0
  10. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/.github/CODEOWNERS +0 -0
  11. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/.github/dependabot.yml +0 -0
  12. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/.github/workflows/ci_cd.yml +0 -0
  13. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/.github/workflows/gpu_benchmark.yml +0 -0
  14. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/.github/workflows/pixi.yml +0 -0
  15. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/.github/workflows/read_the_docs.yml +0 -0
  16. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/.gitignore +0 -0
  17. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/.pre-commit-config.yaml +0 -0
  18. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/.readthedocs.yaml +0 -0
  19. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/CONTRIBUTING.md +0 -0
  20. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/LICENSE +0 -0
  21. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/docs/Makefile +0 -0
  22. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/docs/conf.py +0 -0
  23. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/docs/examples.rst +0 -0
  24. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/docs/guide/configuration.rst +0 -0
  25. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/docs/guide/install.rst +0 -0
  26. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/docs/index.rst +0 -0
  27. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/docs/make.bat +0 -0
  28. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/docs/modules/api.rst +0 -0
  29. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/docs/modules/math.rst +0 -0
  30. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/docs/modules/mujoco.rst +0 -0
  31. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/docs/modules/parsers.rst +0 -0
  32. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/docs/modules/rbda.rst +0 -0
  33. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/docs/modules/typing.rst +0 -0
  34. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/docs/modules/utils.rst +0 -0
  35. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/environment.yml +0 -0
  36. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/examples/.gitattributes +0 -0
  37. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/examples/.gitignore +0 -0
  38. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/examples/README.md +0 -0
  39. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/examples/assets/build_cartpole_urdf.py +0 -0
  40. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/examples/assets/cartpole.urdf +0 -0
  41. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/examples/jaxsim_as_multibody_dynamics_library.ipynb +0 -0
  42. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/examples/jaxsim_as_physics_engine.ipynb +0 -0
  43. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/examples/jaxsim_as_physics_engine_advanced.ipynb +0 -0
  44. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/examples/jaxsim_for_robot_controllers.ipynb +0 -0
  45. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/pixi.lock +0 -0
  46. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/pyproject.toml +0 -0
  47. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/setup.cfg +0 -0
  48. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/setup.py +0 -0
  49. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/__init__.py +0 -0
  50. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/api/__init__.py +0 -0
  51. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/api/actuation_model.py +0 -0
  52. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/api/com.py +0 -0
  53. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/api/common.py +0 -0
  54. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/api/contact.py +0 -0
  55. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/api/data.py +0 -0
  56. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/api/frame.py +0 -0
  57. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/api/integrators.py +0 -0
  58. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/api/joint.py +0 -0
  59. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/api/kin_dyn_parameters.py +0 -0
  60. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/api/link.py +0 -0
  61. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/api/model.py +0 -0
  62. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/api/ode.py +0 -0
  63. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/api/references.py +0 -0
  64. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/exceptions.py +0 -0
  65. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/logging.py +0 -0
  66. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/math/__init__.py +0 -0
  67. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/math/adjoint.py +0 -0
  68. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/math/cross.py +0 -0
  69. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/math/inertia.py +0 -0
  70. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/math/joint_model.py +0 -0
  71. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/math/quaternion.py +0 -0
  72. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/math/rotation.py +0 -0
  73. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/math/skew.py +0 -0
  74. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/math/transform.py +0 -0
  75. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/math/utils.py +0 -0
  76. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/mujoco/__init__.py +0 -0
  77. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/mujoco/__main__.py +0 -0
  78. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/mujoco/loaders.py +0 -0
  79. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/mujoco/model.py +0 -0
  80. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/mujoco/utils.py +0 -0
  81. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/mujoco/visualizer.py +0 -0
  82. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/parsers/__init__.py +0 -0
  83. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/parsers/descriptions/__init__.py +0 -0
  84. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/parsers/descriptions/collision.py +0 -0
  85. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/parsers/descriptions/joint.py +0 -0
  86. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/parsers/descriptions/link.py +0 -0
  87. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/parsers/descriptions/model.py +0 -0
  88. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/parsers/kinematic_graph.py +0 -0
  89. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/parsers/rod/__init__.py +0 -0
  90. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/parsers/rod/meshes.py +0 -0
  91. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/parsers/rod/parser.py +0 -0
  92. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/parsers/rod/utils.py +0 -0
  93. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/rbda/__init__.py +0 -0
  94. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/rbda/aba.py +0 -0
  95. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/rbda/collidable_points.py +0 -0
  96. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/rbda/contacts/__init__.py +0 -0
  97. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/rbda/contacts/common.py +0 -0
  98. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/rbda/contacts/relaxed_rigid.py +0 -0
  99. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/rbda/contacts/soft.py +0 -0
  100. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/rbda/crba.py +0 -0
  101. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/rbda/forward_kinematics.py +0 -0
  102. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/rbda/jacobian.py +0 -0
  103. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/rbda/rnea.py +0 -0
  104. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/rbda/utils.py +0 -0
  105. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/terrain/__init__.py +0 -0
  106. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/terrain/terrain.py +0 -0
  107. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/typing.py +0 -0
  108. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/utils/__init__.py +0 -0
  109. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/utils/jaxsim_dataclass.py +0 -0
  110. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/utils/tracing.py +0 -0
  111. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim/utils/wrappers.py +0 -0
  112. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim.egg-info/SOURCES.txt +0 -0
  113. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim.egg-info/dependency_links.txt +0 -0
  114. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim.egg-info/requires.txt +0 -0
  115. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/src/jaxsim.egg-info/top_level.txt +0 -0
  116. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/tests/__init__.py +0 -0
  117. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/tests/conftest.py +0 -0
  118. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/tests/test_api_com.py +0 -0
  119. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/tests/test_api_contact.py +0 -0
  120. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/tests/test_api_data.py +0 -0
  121. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/tests/test_api_frame.py +0 -0
  122. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/tests/test_api_joint.py +0 -0
  123. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/tests/test_api_link.py +0 -0
  124. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/tests/test_api_model.py +0 -0
  125. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/tests/test_automatic_differentiation.py +0 -0
  126. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/tests/test_exceptions.py +0 -0
  127. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/tests/test_meshes.py +0 -0
  128. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/tests/test_pytree.py +0 -0
  129. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/tests/test_simulations.py +0 -0
  130. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/tests/test_visualizer.py +0 -0
  131. {jaxsim-0.6.2.dev225 → jaxsim-0.6.2.dev231}/tests/utils_idyntree.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jaxsim
3
- Version: 0.6.2.dev225
3
+ Version: 0.6.2.dev231
4
4
  Summary: A differentiable physics engine and multibody dynamics library for control and robot learning.
5
5
  Author-email: Diego Ferigo <dgferigo@gmail.com>, Filippo Luca Ferretti <filippoluca.ferretti@outlook.com>
6
6
  Maintainer-email: Filippo Luca Ferretti <filippo.ferretti@iit.it>, Alessandro Croci <alessandro.croci@iit.it>
@@ -425,19 +425,15 @@ The algorithms and some simulation features were inspired by its accompanying [c
425
425
 
426
426
  The development of JaxSim started in late 2021, inspired by early versions of [`google/brax`][brax].
427
427
  At that time, Brax was implemented in maximal coordinates, and we wanted a physics engine in reduced coordinates.
428
- We are grateful to the Brax team for their work and showing the potential of [JAX][jax] in this field.
428
+ We are grateful to the Brax team for their work and for showing the potential of [JAX][jax] in this field.
429
429
 
430
- Brax v2 was later implemented reduced coordinates, following an approach comparable to JaxSim.
431
- The development then shifted to [MJX][mjx], which today provides a JAX-based implementation of the Mujoco APIs.
430
+ Brax v2 was later implemented with reduced coordinates, following an approach comparable to JaxSim.
431
+ The development then shifted to [MJX][mjx], which provides a JAX-based implementation of the Mujoco APIs.
432
432
 
433
433
  The main differences between MJX/Brax and JaxSim are as follows:
434
434
 
435
435
  - JaxSim supports out-of-the-box all SDF models with [Pose Frame Semantics][PFS].
436
436
  - JaxSim only supports collisions between points rigidly attached to bodies and a compliant ground surface.
437
- Our contact model requires careful tuning of its spring-damper parameters, but being an instantaneous
438
- function of the state $(\mathbf{q}, \boldsymbol{\nu})$, it doesn't require running any optimization algorithm
439
- when stepping the simulation forward.
440
- - JaxSim mitigates the stiffness of the contact-aware system dynamics by providing variable-step integrators.
441
437
 
442
438
  [brax]: https://github.com/google/brax
443
439
  [mjx]: https://mujoco.readthedocs.io/en/3.0.0/mjx.html
@@ -332,19 +332,15 @@ The algorithms and some simulation features were inspired by its accompanying [c
332
332
 
333
333
  The development of JaxSim started in late 2021, inspired by early versions of [`google/brax`][brax].
334
334
  At that time, Brax was implemented in maximal coordinates, and we wanted a physics engine in reduced coordinates.
335
- We are grateful to the Brax team for their work and showing the potential of [JAX][jax] in this field.
335
+ We are grateful to the Brax team for their work and for showing the potential of [JAX][jax] in this field.
336
336
 
337
- Brax v2 was later implemented reduced coordinates, following an approach comparable to JaxSim.
338
- The development then shifted to [MJX][mjx], which today provides a JAX-based implementation of the Mujoco APIs.
337
+ Brax v2 was later implemented with reduced coordinates, following an approach comparable to JaxSim.
338
+ The development then shifted to [MJX][mjx], which provides a JAX-based implementation of the Mujoco APIs.
339
339
 
340
340
  The main differences between MJX/Brax and JaxSim are as follows:
341
341
 
342
342
  - JaxSim supports out-of-the-box all SDF models with [Pose Frame Semantics][PFS].
343
343
  - JaxSim only supports collisions between points rigidly attached to bodies and a compliant ground surface.
344
- Our contact model requires careful tuning of its spring-damper parameters, but being an instantaneous
345
- function of the state $(\mathbf{q}, \boldsymbol{\nu})$, it doesn't require running any optimization algorithm
346
- when stepping the simulation forward.
347
- - JaxSim mitigates the stiffness of the contact-aware system dynamics by providing variable-step integrators.
348
344
 
349
345
  [brax]: https://github.com/google/brax
350
346
  [mjx]: https://mujoco.readthedocs.io/en/3.0.0/mjx.html
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.6.2.dev225'
21
- __version_tuple__ = version_tuple = (0, 6, 2, 'dev225')
20
+ __version__ = version = '0.6.2.dev231'
21
+ __version_tuple__ = version_tuple = (0, 6, 2, 'dev231')
@@ -65,6 +65,7 @@ class RigidContactsParams(ContactsParams):
65
65
  mu: jtp.FloatLike | None = None,
66
66
  K: jtp.FloatLike | None = None,
67
67
  D: jtp.FloatLike | None = None,
68
+ **kwargs,
68
69
  ) -> Self:
69
70
  """Create a `RigidContactParams` instance."""
70
71
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jaxsim
3
- Version: 0.6.2.dev225
3
+ Version: 0.6.2.dev231
4
4
  Summary: A differentiable physics engine and multibody dynamics library for control and robot learning.
5
5
  Author-email: Diego Ferigo <dgferigo@gmail.com>, Filippo Luca Ferretti <filippoluca.ferretti@outlook.com>
6
6
  Maintainer-email: Filippo Luca Ferretti <filippo.ferretti@iit.it>, Alessandro Croci <alessandro.croci@iit.it>
@@ -425,19 +425,15 @@ The algorithms and some simulation features were inspired by its accompanying [c
425
425
 
426
426
  The development of JaxSim started in late 2021, inspired by early versions of [`google/brax`][brax].
427
427
  At that time, Brax was implemented in maximal coordinates, and we wanted a physics engine in reduced coordinates.
428
- We are grateful to the Brax team for their work and showing the potential of [JAX][jax] in this field.
428
+ We are grateful to the Brax team for their work and for showing the potential of [JAX][jax] in this field.
429
429
 
430
- Brax v2 was later implemented reduced coordinates, following an approach comparable to JaxSim.
431
- The development then shifted to [MJX][mjx], which today provides a JAX-based implementation of the Mujoco APIs.
430
+ Brax v2 was later implemented with reduced coordinates, following an approach comparable to JaxSim.
431
+ The development then shifted to [MJX][mjx], which provides a JAX-based implementation of the Mujoco APIs.
432
432
 
433
433
  The main differences between MJX/Brax and JaxSim are as follows:
434
434
 
435
435
  - JaxSim supports out-of-the-box all SDF models with [Pose Frame Semantics][PFS].
436
436
  - JaxSim only supports collisions between points rigidly attached to bodies and a compliant ground surface.
437
- Our contact model requires careful tuning of its spring-damper parameters, but being an instantaneous
438
- function of the state $(\mathbf{q}, \boldsymbol{\nu})$, it doesn't require running any optimization algorithm
439
- when stepping the simulation forward.
440
- - JaxSim mitigates the stiffness of the contact-aware system dynamics by providing variable-step integrators.
441
437
 
442
438
  [brax]: https://github.com/google/brax
443
439
  [mjx]: https://mujoco.readthedocs.io/en/3.0.0/mjx.html
@@ -106,6 +106,7 @@ def test_soft_contact_model(
106
106
 
107
107
  with model.editable(validate=False) as model:
108
108
  model.contact_model = jaxsim.rbda.contacts.SoftContacts()
109
+ model.contact_params = js.contact.estimate_good_contact_parameters(model=model)
109
110
 
110
111
  benchmark_test_function(js.ode.system_dynamics, model, benchmark, batch_size)
111
112
 
@@ -118,6 +119,7 @@ def test_rigid_contact_model(
118
119
 
119
120
  with model.editable(validate=False) as model:
120
121
  model.contact_model = jaxsim.rbda.contacts.RigidContacts()
122
+ model.contact_params = js.contact.estimate_good_contact_parameters(model=model)
121
123
 
122
124
  benchmark_test_function(js.ode.system_dynamics, model, benchmark, batch_size)
123
125
 
@@ -130,6 +132,7 @@ def test_relaxed_rigid_contact_model(
130
132
 
131
133
  with model.editable(validate=False) as model:
132
134
  model.contact_model = jaxsim.rbda.contacts.RelaxedRigidContacts()
135
+ model.contact_params = js.contact.estimate_good_contact_parameters(model=model)
133
136
 
134
137
  benchmark_test_function(js.ode.system_dynamics, model, benchmark, batch_size)
135
138
 
@@ -142,5 +145,6 @@ def test_simulation_step(
142
145
 
143
146
  with model.editable(validate=False) as model:
144
147
  model.contact_model = jaxsim.rbda.contacts.RelaxedRigidContacts()
148
+ model.contact_params = js.contact.estimate_good_contact_parameters(model=model)
145
149
 
146
150
  benchmark_test_function(js.model.step, model, benchmark, batch_size)
File without changes
File without changes
File without changes
File without changes
File without changes