jaxsim 0.2.1.dev121__tar.gz → 0.2.1.dev123__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 (118) hide show
  1. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/PKG-INFO +1 -1
  2. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/_version.py +2 -2
  3. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim.egg-info/PKG-INFO +1 -1
  4. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/tests/test_api_link.py +64 -1
  5. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/.devcontainer/Dockerfile +0 -0
  6. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/.devcontainer/devcontainer.json +0 -0
  7. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/.gitattributes +0 -0
  8. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/.github/CODEOWNERS +0 -0
  9. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/.github/workflows/ci_cd.yml +0 -0
  10. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/.github/workflows/read_the_docs.yml +0 -0
  11. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/.github/workflows/style.yml +0 -0
  12. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/.gitignore +0 -0
  13. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/.pre-commit-config.yaml +0 -0
  14. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/.readthedocs.yaml +0 -0
  15. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/CONTRIBUTING.md +0 -0
  16. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/LICENSE +0 -0
  17. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/README.md +0 -0
  18. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/docs/Makefile +0 -0
  19. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/docs/conf.py +0 -0
  20. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/docs/guide/install.rst +0 -0
  21. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/docs/index.rst +0 -0
  22. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/docs/make.bat +0 -0
  23. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/docs/modules/api.rst +0 -0
  24. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/docs/modules/index.rst +0 -0
  25. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/docs/modules/integrators.rst +0 -0
  26. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/docs/modules/math.rst +0 -0
  27. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/docs/modules/mujoco.rst +0 -0
  28. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/docs/modules/parsers.rst +0 -0
  29. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/docs/modules/rbda.rst +0 -0
  30. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/docs/modules/typing.rst +0 -0
  31. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/docs/modules/utils.rst +0 -0
  32. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/environment.yml +0 -0
  33. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/examples/.gitattributes +0 -0
  34. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/examples/.gitignore +0 -0
  35. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/examples/PD_controller.ipynb +0 -0
  36. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/examples/Parallel_computing.ipynb +0 -0
  37. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/examples/README.md +0 -0
  38. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/examples/assets/cartpole.urdf +0 -0
  39. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/pixi.lock +0 -0
  40. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/pyproject.toml +0 -0
  41. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/setup.cfg +0 -0
  42. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/setup.py +0 -0
  43. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/__init__.py +0 -0
  44. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/api/__init__.py +0 -0
  45. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/api/com.py +0 -0
  46. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/api/common.py +0 -0
  47. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/api/contact.py +0 -0
  48. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/api/data.py +0 -0
  49. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/api/frame.py +0 -0
  50. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/api/joint.py +0 -0
  51. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/api/kin_dyn_parameters.py +0 -0
  52. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/api/link.py +0 -0
  53. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/api/model.py +0 -0
  54. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/api/ode.py +0 -0
  55. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/api/ode_data.py +0 -0
  56. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/api/references.py +0 -0
  57. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/integrators/__init__.py +0 -0
  58. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/integrators/common.py +0 -0
  59. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/integrators/fixed_step.py +0 -0
  60. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/integrators/variable_step.py +0 -0
  61. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/logging.py +0 -0
  62. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/math/__init__.py +0 -0
  63. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/math/adjoint.py +0 -0
  64. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/math/cross.py +0 -0
  65. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/math/inertia.py +0 -0
  66. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/math/joint_model.py +0 -0
  67. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/math/quaternion.py +0 -0
  68. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/math/rotation.py +0 -0
  69. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/math/skew.py +0 -0
  70. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/math/transform.py +0 -0
  71. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/mujoco/__init__.py +0 -0
  72. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/mujoco/__main__.py +0 -0
  73. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/mujoco/loaders.py +0 -0
  74. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/mujoco/model.py +0 -0
  75. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/mujoco/visualizer.py +0 -0
  76. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/parsers/__init__.py +0 -0
  77. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/parsers/descriptions/__init__.py +0 -0
  78. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/parsers/descriptions/collision.py +0 -0
  79. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/parsers/descriptions/joint.py +0 -0
  80. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/parsers/descriptions/link.py +0 -0
  81. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/parsers/descriptions/model.py +0 -0
  82. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/parsers/kinematic_graph.py +0 -0
  83. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/parsers/rod/__init__.py +0 -0
  84. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/parsers/rod/parser.py +0 -0
  85. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/parsers/rod/utils.py +0 -0
  86. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/rbda/__init__.py +0 -0
  87. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/rbda/aba.py +0 -0
  88. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/rbda/collidable_points.py +0 -0
  89. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/rbda/crba.py +0 -0
  90. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/rbda/forward_kinematics.py +0 -0
  91. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/rbda/jacobian.py +0 -0
  92. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/rbda/rnea.py +0 -0
  93. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/rbda/soft_contacts.py +0 -0
  94. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/rbda/utils.py +0 -0
  95. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/terrain/__init__.py +0 -0
  96. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/terrain/terrain.py +0 -0
  97. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/typing.py +0 -0
  98. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/utils/__init__.py +0 -0
  99. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/utils/jaxsim_dataclass.py +0 -0
  100. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/utils/tracing.py +0 -0
  101. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim/utils/wrappers.py +0 -0
  102. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim.egg-info/SOURCES.txt +0 -0
  103. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim.egg-info/dependency_links.txt +0 -0
  104. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim.egg-info/not-zip-safe +0 -0
  105. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim.egg-info/requires.txt +0 -0
  106. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/src/jaxsim.egg-info/top_level.txt +0 -0
  107. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/tests/__init__.py +0 -0
  108. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/tests/conftest.py +0 -0
  109. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/tests/test_api_com.py +0 -0
  110. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/tests/test_api_data.py +0 -0
  111. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/tests/test_api_frame.py +0 -0
  112. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/tests/test_api_joint.py +0 -0
  113. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/tests/test_api_model.py +0 -0
  114. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/tests/test_automatic_differentiation.py +0 -0
  115. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/tests/test_contact.py +0 -0
  116. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/tests/test_pytree.py +0 -0
  117. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/tests/test_simulations.py +0 -0
  118. {jaxsim-0.2.1.dev121 → jaxsim-0.2.1.dev123}/tests/utils_idyntree.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jaxsim
3
- Version: 0.2.1.dev121
3
+ Version: 0.2.1.dev123
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.2.1.dev121'
16
- __version_tuple__ = version_tuple = (0, 2, 1, 'dev121')
15
+ __version__ = version = '0.2.1.dev123'
16
+ __version_tuple__ = version_tuple = (0, 2, 1, 'dev123')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jaxsim
3
- Version: 0.2.1.dev121
3
+ Version: 0.2.1.dev123
4
4
  Home-page: https://github.com/ami-iit/jaxsim
5
5
  Author: Diego Ferigo
6
6
  Author-email: diego.ferigo@iit.it
@@ -3,6 +3,7 @@ import jax.numpy as jnp
3
3
  import pytest
4
4
 
5
5
  import jaxsim.api as js
6
+ import jaxsim.math
6
7
  from jaxsim import VelRepr
7
8
 
8
9
  from . import utils_idyntree
@@ -250,4 +251,66 @@ def test_link_jacobian_derivative(
250
251
  )(js.link.names_to_idxs(model=model, link_names=model.link_names()))
251
252
 
252
253
  # Compare the two computations.
253
- assert jnp.einsum("l6g,g->l6", O_J̇_WL_I, I_ν) == pytest.approx(O_a_bias_WL)
254
+ assert jnp.einsum("l6g,g->l6", O_J̇_WL_I, I_ν) == pytest.approx(
255
+ O_a_bias_WL, abs=1e-9
256
+ )
257
+
258
+ # Compute the plain Jacobian.
259
+ # This function will be used to compute the Jacobian derivative with AD.
260
+ # Given q, computing J̇ by AD-ing this function should work out-of-the-box with
261
+ # all velocity representations, that are handled internally when computing J.
262
+ def J(q) -> jax.Array:
263
+
264
+ data_ad = js.data.JaxSimModelData.zero(
265
+ model=model, velocity_representation=data.velocity_representation
266
+ )
267
+
268
+ data_ad = data_ad.reset_base_position(base_position=q[:3])
269
+ data_ad = data_ad.reset_base_quaternion(base_quaternion=q[3:7])
270
+ data_ad = data_ad.reset_joint_positions(positions=q[7:])
271
+
272
+ O_J_WL_I = js.model.generalized_free_floating_jacobian(
273
+ model=model, data=data_ad
274
+ )
275
+
276
+ return O_J_WL_I
277
+
278
+ def compute_q(data: js.data.JaxSimModelData) -> jax.Array:
279
+
280
+ q = jnp.hstack(
281
+ [data.base_position(), data.base_orientation(), data.joint_positions()]
282
+ )
283
+
284
+ return q
285
+
286
+ def compute_q̇(data: js.data.JaxSimModelData) -> jax.Array:
287
+
288
+ with data.switch_velocity_representation(VelRepr.Body):
289
+ B_ω_WB = data.base_velocity()[3:6]
290
+
291
+ with data.switch_velocity_representation(VelRepr.Mixed):
292
+ W_ṗ_B = data.base_velocity()[0:3]
293
+
294
+ W_Q̇_B = jaxsim.math.Quaternion.derivative(
295
+ quaternion=data.base_orientation(),
296
+ omega=B_ω_WB,
297
+ omega_in_body_fixed=True,
298
+ K=0.0,
299
+ ).squeeze()
300
+
301
+ q̇ = jnp.hstack([W_ṗ_B, W_Q̇_B, data.joint_velocities()])
302
+
303
+ return q̇
304
+
305
+ # Compute q and q̇.
306
+ q = compute_q(data)
307
+ q̇ = compute_q̇(data)
308
+
309
+ # Compute dJ/dt with AD.
310
+ dJ_dq = jax.jacfwd(J, argnums=0)(q)
311
+ O_J̇_ad_WL_I = jnp.einsum("ijkq,q->ijk", dJ_dq, q̇)
312
+
313
+ assert O_J̇_ad_WL_I == pytest.approx(O_J̇_WL_I)
314
+ assert jnp.einsum("l6g,g->l6", O_J̇_ad_WL_I, I_ν) == pytest.approx(
315
+ jnp.einsum("l6g,g->l6", O_J̇_WL_I, I_ν)
316
+ )
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes