jaxsim 0.3.1.dev46__tar.gz → 0.3.1.dev51__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 (122) hide show
  1. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/PKG-INFO +1 -1
  2. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/_version.py +2 -2
  3. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/api/model.py +21 -2
  4. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/integrators/common.py +3 -1
  5. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim.egg-info/PKG-INFO +1 -1
  6. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/tests/test_exceptions.py +10 -10
  7. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/.devcontainer/Dockerfile +0 -0
  8. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/.devcontainer/devcontainer.json +0 -0
  9. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/.gitattributes +0 -0
  10. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/.github/CODEOWNERS +0 -0
  11. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/.github/workflows/ci_cd.yml +0 -0
  12. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/.github/workflows/read_the_docs.yml +0 -0
  13. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/.github/workflows/style.yml +0 -0
  14. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/.gitignore +0 -0
  15. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/.pre-commit-config.yaml +0 -0
  16. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/.readthedocs.yaml +0 -0
  17. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/CONTRIBUTING.md +0 -0
  18. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/LICENSE +0 -0
  19. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/README.md +0 -0
  20. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/docs/Makefile +0 -0
  21. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/docs/conf.py +0 -0
  22. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/docs/guide/install.rst +0 -0
  23. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/docs/index.rst +0 -0
  24. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/docs/make.bat +0 -0
  25. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/docs/modules/api.rst +0 -0
  26. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/docs/modules/index.rst +0 -0
  27. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/docs/modules/integrators.rst +0 -0
  28. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/docs/modules/math.rst +0 -0
  29. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/docs/modules/mujoco.rst +0 -0
  30. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/docs/modules/parsers.rst +0 -0
  31. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/docs/modules/rbda.rst +0 -0
  32. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/docs/modules/typing.rst +0 -0
  33. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/docs/modules/utils.rst +0 -0
  34. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/environment.yml +0 -0
  35. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/examples/.gitattributes +0 -0
  36. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/examples/.gitignore +0 -0
  37. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/examples/PD_controller.ipynb +0 -0
  38. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/examples/Parallel_computing.ipynb +0 -0
  39. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/examples/README.md +0 -0
  40. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/examples/assets/cartpole.urdf +0 -0
  41. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/pixi.lock +0 -0
  42. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/pyproject.toml +0 -0
  43. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/setup.cfg +0 -0
  44. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/setup.py +0 -0
  45. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/__init__.py +0 -0
  46. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/api/__init__.py +0 -0
  47. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/api/com.py +0 -0
  48. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/api/common.py +0 -0
  49. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/api/contact.py +0 -0
  50. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/api/data.py +0 -0
  51. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/api/frame.py +0 -0
  52. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/api/joint.py +0 -0
  53. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/api/kin_dyn_parameters.py +0 -0
  54. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/api/link.py +0 -0
  55. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/api/ode.py +0 -0
  56. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/api/ode_data.py +0 -0
  57. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/api/references.py +0 -0
  58. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/exceptions.py +0 -0
  59. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/integrators/__init__.py +0 -0
  60. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/integrators/fixed_step.py +0 -0
  61. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/integrators/variable_step.py +0 -0
  62. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/logging.py +0 -0
  63. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/math/__init__.py +0 -0
  64. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/math/adjoint.py +0 -0
  65. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/math/cross.py +0 -0
  66. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/math/inertia.py +0 -0
  67. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/math/joint_model.py +0 -0
  68. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/math/quaternion.py +0 -0
  69. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/math/rotation.py +0 -0
  70. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/math/skew.py +0 -0
  71. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/math/transform.py +0 -0
  72. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/mujoco/__init__.py +0 -0
  73. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/mujoco/__main__.py +0 -0
  74. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/mujoco/loaders.py +0 -0
  75. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/mujoco/model.py +0 -0
  76. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/mujoco/visualizer.py +0 -0
  77. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/parsers/__init__.py +0 -0
  78. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/parsers/descriptions/__init__.py +0 -0
  79. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/parsers/descriptions/collision.py +0 -0
  80. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/parsers/descriptions/joint.py +0 -0
  81. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/parsers/descriptions/link.py +0 -0
  82. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/parsers/descriptions/model.py +0 -0
  83. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/parsers/kinematic_graph.py +0 -0
  84. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/parsers/rod/__init__.py +0 -0
  85. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/parsers/rod/parser.py +0 -0
  86. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/parsers/rod/utils.py +0 -0
  87. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/rbda/__init__.py +0 -0
  88. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/rbda/aba.py +0 -0
  89. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/rbda/collidable_points.py +0 -0
  90. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/rbda/contacts/__init__.py +0 -0
  91. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/rbda/contacts/common.py +0 -0
  92. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/rbda/contacts/soft.py +0 -0
  93. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/rbda/crba.py +0 -0
  94. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/rbda/forward_kinematics.py +0 -0
  95. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/rbda/jacobian.py +0 -0
  96. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/rbda/rnea.py +0 -0
  97. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/rbda/utils.py +0 -0
  98. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/terrain/__init__.py +0 -0
  99. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/terrain/terrain.py +0 -0
  100. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/typing.py +0 -0
  101. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/utils/__init__.py +0 -0
  102. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/utils/jaxsim_dataclass.py +0 -0
  103. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/utils/tracing.py +0 -0
  104. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim/utils/wrappers.py +0 -0
  105. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim.egg-info/SOURCES.txt +0 -0
  106. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim.egg-info/dependency_links.txt +0 -0
  107. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim.egg-info/not-zip-safe +0 -0
  108. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim.egg-info/requires.txt +0 -0
  109. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/src/jaxsim.egg-info/top_level.txt +0 -0
  110. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/tests/__init__.py +0 -0
  111. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/tests/conftest.py +0 -0
  112. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/tests/test_api_com.py +0 -0
  113. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/tests/test_api_data.py +0 -0
  114. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/tests/test_api_frame.py +0 -0
  115. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/tests/test_api_joint.py +0 -0
  116. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/tests/test_api_link.py +0 -0
  117. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/tests/test_api_model.py +0 -0
  118. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/tests/test_automatic_differentiation.py +0 -0
  119. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/tests/test_contact.py +0 -0
  120. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/tests/test_pytree.py +0 -0
  121. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/tests/test_simulations.py +0 -0
  122. {jaxsim-0.3.1.dev46 → jaxsim-0.3.1.dev51}/tests/utils_idyntree.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jaxsim
3
- Version: 0.3.1.dev46
3
+ Version: 0.3.1.dev51
4
4
  Home-page: https://github.com/ami-iit/jaxsim
5
5
  Author: Diego Ferigo
6
6
  Author-email: diego.ferigo@iit.it
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.3.1.dev46'
16
- __version_tuple__ = version_tuple = (0, 3, 1, 'dev46')
15
+ __version__ = version = '0.3.1.dev51'
16
+ __version_tuple__ = version_tuple = (0, 3, 1, 'dev51')
@@ -1841,7 +1841,13 @@ def step(
1841
1841
  and the new state of the integrator.
1842
1842
  """
1843
1843
 
1844
- integrator_kwargs = kwargs if kwargs is not None else dict()
1844
+ # Extract the integrator kwargs.
1845
+ # The following logic allows using integrators having kwargs colliding with the
1846
+ # kwargs of this step function.
1847
+ kwargs = kwargs if kwargs is not None else {}
1848
+ integrator_kwargs = kwargs.pop("integrator_kwargs", {})
1849
+ integrator_kwargs = kwargs | integrator_kwargs
1850
+
1845
1851
  integrator_state = integrator_state if integrator_state is not None else dict()
1846
1852
 
1847
1853
  # Extract the initial resources.
@@ -1855,8 +1861,21 @@ def step(
1855
1861
  t0=jnp.array(t0_ns / 1e9).astype(float),
1856
1862
  dt=dt,
1857
1863
  params=integrator_state_x0,
1864
+ # Always inject the current (model, data) pair into the system dynamics
1865
+ # considered by the integrator, and include the input variables represented
1866
+ # by the pair (joint_forces, link_forces).
1867
+ # Note that the wrapper of the system dynamics will override (state_x0, t0)
1868
+ # inside the passed data even if it is not strictly needed. This logic is
1869
+ # necessary to re-use the jit-compiled step function of compatible pytrees
1870
+ # of model and data produced e.g. by parameterized applications.
1858
1871
  **(
1859
- dict(joint_forces=joint_forces, link_forces=link_forces) | integrator_kwargs
1872
+ dict(
1873
+ model=model,
1874
+ data=data,
1875
+ joint_forces=joint_forces,
1876
+ link_forces=link_forces,
1877
+ )
1878
+ | integrator_kwargs
1860
1879
  ),
1861
1880
  )
1862
1881
 
@@ -422,7 +422,9 @@ class ExplicitRungeKutta(Integrator[PyTreeType, PyTreeType], Generic[PyTreeType]
422
422
 
423
423
  # Update the FSAL property for the next iteration.
424
424
  if self.has_fsal:
425
- self.params["dxdt0"] = jax.tree_map(lambda l: l[self.index_of_fsal], K)
425
+ self.params["dxdt0"] = jax.tree_util.tree_map(
426
+ lambda l: l[self.index_of_fsal], K
427
+ )
426
428
 
427
429
  # Compute the output state.
428
430
  # Note that z contains as many new states as the rows of `b.T`.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jaxsim
3
- Version: 0.3.1.dev46
3
+ Version: 0.3.1.dev51
4
4
  Home-page: https://github.com/ami-iit/jaxsim
5
5
  Author: Diego Ferigo
6
6
  Author-email: diego.ferigo@iit.it
@@ -68,21 +68,21 @@ def test_exceptions_in_jit_functions():
68
68
  assert jit_compiled_function._cache_size() == 1
69
69
 
70
70
  # Let's trigger a ValueError exception by passing 42.
71
- # Note: the real ValueError is printed in a stream that I couldn't figure out
72
- # how to capture in pytest.
73
- with pytest.raises(jaxlib.xla_extension.XlaRuntimeError):
74
-
75
- data = 42
71
+ data = 42
72
+ with pytest.raises(
73
+ jaxlib.xla_extension.XlaRuntimeError,
74
+ match=f"ValueError: Raising ValueError since data={data}",
75
+ ):
76
76
  _ = jit_compiled_function(data=data)
77
77
 
78
78
  assert jit_compiled_function._cache_size() == 1
79
79
 
80
80
  # Let's trigger a RuntimeError exception by passing -42.
81
- # Note: the real RuntimeError is printed in a stream that I couldn't figure out
82
- # how to capture in pytest.
83
- with pytest.raises(jaxlib.xla_extension.XlaRuntimeError):
84
-
85
- data = -42
81
+ data = -42
82
+ with pytest.raises(
83
+ jaxlib.xla_extension.XlaRuntimeError,
84
+ match=f"RuntimeError: Raising RuntimeError since data={data}",
85
+ ):
86
86
  _ = jit_compiled_function(data=data)
87
87
 
88
88
  assert jit_compiled_function._cache_size() == 1
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes