jaxsim 0.5.1.dev75__tar.gz → 0.5.1.dev80__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.
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/PKG-INFO +1 -1
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/_version.py +2 -2
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/api/model.py +20 -19
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim.egg-info/PKG-INFO +1 -1
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/tests/test_api_model.py +9 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/.devcontainer/Dockerfile +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/.devcontainer/devcontainer.json +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/.gitattributes +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/.github/CODEOWNERS +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/.github/dependabot.yml +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/.github/workflows/ci_cd.yml +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/.github/workflows/pixi.yml +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/.github/workflows/read_the_docs.yml +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/.gitignore +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/.pre-commit-config.yaml +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/.readthedocs.yaml +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/CONTRIBUTING.md +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/LICENSE +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/README.md +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/docs/Makefile +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/docs/conf.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/docs/examples.rst +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/docs/guide/configuration.rst +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/docs/guide/install.rst +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/docs/index.rst +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/docs/make.bat +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/docs/modules/api.rst +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/docs/modules/integrators.rst +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/docs/modules/math.rst +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/docs/modules/mujoco.rst +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/docs/modules/parsers.rst +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/docs/modules/rbda.rst +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/docs/modules/typing.rst +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/docs/modules/utils.rst +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/environment.yml +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/examples/.gitattributes +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/examples/.gitignore +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/examples/README.md +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/examples/assets/build_cartpole_urdf.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/examples/assets/cartpole.urdf +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/examples/jaxsim_as_multibody_dynamics_library.ipynb +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/examples/jaxsim_as_physics_engine.ipynb +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/examples/jaxsim_for_robot_controllers.ipynb +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/pixi.lock +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/pyproject.toml +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/setup.cfg +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/setup.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/__init__.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/api/__init__.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/api/com.py +8 -8
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/api/common.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/api/contact.py +9 -9
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/api/data.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/api/frame.py +7 -7
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/api/joint.py +4 -4
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/api/kin_dyn_parameters.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/api/link.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/api/ode.py +3 -3
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/api/ode_data.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/api/references.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/exceptions.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/integrators/__init__.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/integrators/common.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/integrators/fixed_step.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/integrators/variable_step.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/logging.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/math/__init__.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/math/adjoint.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/math/cross.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/math/inertia.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/math/joint_model.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/math/quaternion.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/math/rotation.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/math/skew.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/math/transform.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/mujoco/__init__.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/mujoco/__main__.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/mujoco/loaders.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/mujoco/model.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/mujoco/utils.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/mujoco/visualizer.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/parsers/__init__.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/parsers/descriptions/__init__.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/parsers/descriptions/collision.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/parsers/descriptions/joint.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/parsers/descriptions/link.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/parsers/descriptions/model.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/parsers/kinematic_graph.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/parsers/rod/__init__.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/parsers/rod/meshes.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/parsers/rod/parser.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/parsers/rod/utils.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/rbda/__init__.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/rbda/aba.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/rbda/collidable_points.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/rbda/contacts/__init__.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/rbda/contacts/common.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/rbda/contacts/relaxed_rigid.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/rbda/contacts/rigid.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/rbda/contacts/soft.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/rbda/contacts/visco_elastic.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/rbda/crba.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/rbda/forward_kinematics.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/rbda/jacobian.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/rbda/rnea.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/rbda/utils.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/terrain/__init__.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/terrain/terrain.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/typing.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/utils/__init__.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/utils/jaxsim_dataclass.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/utils/tracing.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim/utils/wrappers.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim.egg-info/SOURCES.txt +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim.egg-info/dependency_links.txt +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim.egg-info/requires.txt +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/src/jaxsim.egg-info/top_level.txt +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/tests/__init__.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/tests/conftest.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/tests/test_api_com.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/tests/test_api_contact.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/tests/test_api_data.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/tests/test_api_frame.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/tests/test_api_joint.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/tests/test_api_link.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/tests/test_automatic_differentiation.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/tests/test_benchmark.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/tests/test_contact.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/tests/test_exceptions.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/tests/test_meshes.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/tests/test_pytree.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/tests/test_simulations.py +0 -0
- {jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/tests/utils_idyntree.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: jaxsim
|
3
|
-
Version: 0.5.1.
|
3
|
+
Version: 0.5.1.dev80
|
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>
|
@@ -12,5 +12,5 @@ __version__: str
|
|
12
12
|
__version_tuple__: VERSION_TUPLE
|
13
13
|
version_tuple: VERSION_TUPLE
|
14
14
|
|
15
|
-
__version__ = version = '0.5.1.
|
16
|
-
__version_tuple__ = version_tuple = (0, 5, 1, '
|
15
|
+
__version__ = version = '0.5.1.dev80'
|
16
|
+
__version_tuple__ = version_tuple = (0, 5, 1, 'dev80')
|
@@ -477,6 +477,7 @@ def reduce(
|
|
477
477
|
time_step=model.time_step,
|
478
478
|
terrain=model.terrain,
|
479
479
|
contact_model=model.contact_model,
|
480
|
+
integrator=model.integrator,
|
480
481
|
)
|
481
482
|
|
482
483
|
# Store the origin of the model, in case downstream logic needs it.
|
@@ -491,8 +492,8 @@ def reduce(
|
|
491
492
|
# ===================
|
492
493
|
|
493
494
|
|
494
|
-
@js.common.named_scope
|
495
495
|
@jax.jit
|
496
|
+
@js.common.named_scope
|
496
497
|
def total_mass(model: JaxSimModel) -> jtp.Float:
|
497
498
|
"""
|
498
499
|
Compute the total mass of the model.
|
@@ -507,8 +508,8 @@ def total_mass(model: JaxSimModel) -> jtp.Float:
|
|
507
508
|
return model.kin_dyn_parameters.link_parameters.mass.sum().astype(float)
|
508
509
|
|
509
510
|
|
510
|
-
@js.common.named_scope
|
511
511
|
@jax.jit
|
512
|
+
@js.common.named_scope
|
512
513
|
def link_spatial_inertia_matrices(model: JaxSimModel) -> jtp.Array:
|
513
514
|
"""
|
514
515
|
Compute the spatial 6D inertia matrices of all links of the model.
|
@@ -530,8 +531,8 @@ def link_spatial_inertia_matrices(model: JaxSimModel) -> jtp.Array:
|
|
530
531
|
# ==============================
|
531
532
|
|
532
533
|
|
533
|
-
@js.common.named_scope
|
534
534
|
@jax.jit
|
535
|
+
@js.common.named_scope
|
535
536
|
def forward_kinematics(model: JaxSimModel, data: js.data.JaxSimModelData) -> jtp.Array:
|
536
537
|
"""
|
537
538
|
Compute the SE(3) transforms from the world frame to the frames of all links.
|
@@ -918,8 +919,8 @@ def forward_dynamics(
|
|
918
919
|
)
|
919
920
|
|
920
921
|
|
921
|
-
@js.common.named_scope
|
922
922
|
@jax.jit
|
923
|
+
@js.common.named_scope
|
923
924
|
def forward_dynamics_aba(
|
924
925
|
model: JaxSimModel,
|
925
926
|
data: js.data.JaxSimModelData,
|
@@ -1063,8 +1064,8 @@ def forward_dynamics_aba(
|
|
1063
1064
|
return C_v̇_WB.astype(float), s̈.astype(float)
|
1064
1065
|
|
1065
1066
|
|
1066
|
-
@js.common.named_scope
|
1067
1067
|
@jax.jit
|
1068
|
+
@js.common.named_scope
|
1068
1069
|
def forward_dynamics_crb(
|
1069
1070
|
model: JaxSimModel,
|
1070
1071
|
data: js.data.JaxSimModelData,
|
@@ -1155,8 +1156,8 @@ def forward_dynamics_crb(
|
|
1155
1156
|
return v̇_WB, s̈
|
1156
1157
|
|
1157
1158
|
|
1158
|
-
@js.common.named_scope
|
1159
1159
|
@jax.jit
|
1160
|
+
@js.common.named_scope
|
1160
1161
|
def free_floating_mass_matrix(
|
1161
1162
|
model: JaxSimModel, data: js.data.JaxSimModelData
|
1162
1163
|
) -> jtp.Matrix:
|
@@ -1201,8 +1202,8 @@ def free_floating_mass_matrix(
|
|
1201
1202
|
raise ValueError(data.velocity_representation)
|
1202
1203
|
|
1203
1204
|
|
1204
|
-
@js.common.named_scope
|
1205
1205
|
@jax.jit
|
1206
|
+
@js.common.named_scope
|
1206
1207
|
def free_floating_coriolis_matrix(
|
1207
1208
|
model: JaxSimModel, data: js.data.JaxSimModelData
|
1208
1209
|
) -> jtp.Matrix:
|
@@ -1318,8 +1319,8 @@ def free_floating_coriolis_matrix(
|
|
1318
1319
|
raise ValueError(data.velocity_representation)
|
1319
1320
|
|
1320
1321
|
|
1321
|
-
@js.common.named_scope
|
1322
1322
|
@jax.jit
|
1323
|
+
@js.common.named_scope
|
1323
1324
|
def inverse_dynamics(
|
1324
1325
|
model: JaxSimModel,
|
1325
1326
|
data: js.data.JaxSimModelData,
|
@@ -1474,8 +1475,8 @@ def inverse_dynamics(
|
|
1474
1475
|
return f_B.astype(float), τ.astype(float)
|
1475
1476
|
|
1476
1477
|
|
1477
|
-
@js.common.named_scope
|
1478
1478
|
@jax.jit
|
1479
|
+
@js.common.named_scope
|
1479
1480
|
def free_floating_gravity_forces(
|
1480
1481
|
model: JaxSimModel, data: js.data.JaxSimModelData
|
1481
1482
|
) -> jtp.Vector:
|
@@ -1524,8 +1525,8 @@ def free_floating_gravity_forces(
|
|
1524
1525
|
).astype(float)
|
1525
1526
|
|
1526
1527
|
|
1527
|
-
@js.common.named_scope
|
1528
1528
|
@jax.jit
|
1529
|
+
@js.common.named_scope
|
1529
1530
|
def free_floating_bias_forces(
|
1530
1531
|
model: JaxSimModel, data: js.data.JaxSimModelData
|
1531
1532
|
) -> jtp.Vector:
|
@@ -1594,8 +1595,8 @@ def free_floating_bias_forces(
|
|
1594
1595
|
# ==========================
|
1595
1596
|
|
1596
1597
|
|
1597
|
-
@js.common.named_scope
|
1598
1598
|
@jax.jit
|
1599
|
+
@js.common.named_scope
|
1599
1600
|
def locked_spatial_inertia(
|
1600
1601
|
model: JaxSimModel, data: js.data.JaxSimModelData
|
1601
1602
|
) -> jtp.Matrix:
|
@@ -1613,8 +1614,8 @@ def locked_spatial_inertia(
|
|
1613
1614
|
return total_momentum_jacobian(model=model, data=data)[:, 0:6]
|
1614
1615
|
|
1615
1616
|
|
1616
|
-
@js.common.named_scope
|
1617
1617
|
@jax.jit
|
1618
|
+
@js.common.named_scope
|
1618
1619
|
def total_momentum(model: JaxSimModel, data: js.data.JaxSimModelData) -> jtp.Vector:
|
1619
1620
|
"""
|
1620
1621
|
Compute the total momentum of the model.
|
@@ -1702,8 +1703,8 @@ def total_momentum_jacobian(
|
|
1702
1703
|
raise ValueError(output_vel_repr)
|
1703
1704
|
|
1704
1705
|
|
1705
|
-
@js.common.named_scope
|
1706
1706
|
@jax.jit
|
1707
|
+
@js.common.named_scope
|
1707
1708
|
def average_velocity(model: JaxSimModel, data: js.data.JaxSimModelData) -> jtp.Vector:
|
1708
1709
|
"""
|
1709
1710
|
Compute the average velocity of the model.
|
@@ -1791,8 +1792,8 @@ def average_velocity_jacobian(
|
|
1791
1792
|
# ========================
|
1792
1793
|
|
1793
1794
|
|
1794
|
-
@js.common.named_scope
|
1795
1795
|
@jax.jit
|
1796
|
+
@js.common.named_scope
|
1796
1797
|
def link_bias_accelerations(
|
1797
1798
|
model: JaxSimModel,
|
1798
1799
|
data: js.data.JaxSimModelData,
|
@@ -2001,8 +2002,8 @@ def link_bias_accelerations(
|
|
2001
2002
|
return O_v̇_WL
|
2002
2003
|
|
2003
2004
|
|
2004
|
-
@js.common.named_scope
|
2005
2005
|
@jax.jit
|
2006
|
+
@js.common.named_scope
|
2006
2007
|
def link_contact_forces(
|
2007
2008
|
model: js.model.JaxSimModel,
|
2008
2009
|
data: js.data.JaxSimModelData,
|
@@ -2077,8 +2078,8 @@ def link_contact_forces(
|
|
2077
2078
|
# ======
|
2078
2079
|
|
2079
2080
|
|
2080
|
-
@js.common.named_scope
|
2081
2081
|
@jax.jit
|
2082
|
+
@js.common.named_scope
|
2082
2083
|
def mechanical_energy(model: JaxSimModel, data: js.data.JaxSimModelData) -> jtp.Float:
|
2083
2084
|
"""
|
2084
2085
|
Compute the mechanical energy of the model.
|
@@ -2097,8 +2098,8 @@ def mechanical_energy(model: JaxSimModel, data: js.data.JaxSimModelData) -> jtp.
|
|
2097
2098
|
return (K + U).astype(float)
|
2098
2099
|
|
2099
2100
|
|
2100
|
-
@js.common.named_scope
|
2101
2101
|
@jax.jit
|
2102
|
+
@js.common.named_scope
|
2102
2103
|
def kinetic_energy(model: JaxSimModel, data: js.data.JaxSimModelData) -> jtp.Float:
|
2103
2104
|
"""
|
2104
2105
|
Compute the kinetic energy of the model.
|
@@ -2119,8 +2120,8 @@ def kinetic_energy(model: JaxSimModel, data: js.data.JaxSimModelData) -> jtp.Flo
|
|
2119
2120
|
return K.squeeze().astype(float)
|
2120
2121
|
|
2121
2122
|
|
2122
|
-
@js.common.named_scope
|
2123
2123
|
@jax.jit
|
2124
|
+
@js.common.named_scope
|
2124
2125
|
def potential_energy(model: JaxSimModel, data: js.data.JaxSimModelData) -> jtp.Float:
|
2125
2126
|
"""
|
2126
2127
|
Compute the potential energy of the model.
|
@@ -2146,8 +2147,8 @@ def potential_energy(model: JaxSimModel, data: js.data.JaxSimModelData) -> jtp.F
|
|
2146
2147
|
# ==========
|
2147
2148
|
|
2148
2149
|
|
2149
|
-
@js.common.named_scope
|
2150
2150
|
@jax.jit
|
2151
|
+
@js.common.named_scope
|
2151
2152
|
def step(
|
2152
2153
|
model: JaxSimModel,
|
2153
2154
|
data: js.data.JaxSimModelData,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: jaxsim
|
3
|
-
Version: 0.5.1.
|
3
|
+
Version: 0.5.1.dev80
|
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>
|
@@ -98,6 +98,15 @@ def test_model_creation_and_reduction(
|
|
98
98
|
# Check that the reduced model maintains the same terrain of the full model.
|
99
99
|
assert model_full.terrain == model_reduced.terrain
|
100
100
|
|
101
|
+
# Check that the reduced model maintains the same contact model of the full model.
|
102
|
+
assert model_full.contact_model == model_reduced.contact_model
|
103
|
+
|
104
|
+
# Check that the reduced model maintains the same integration step of the full model.
|
105
|
+
assert model_full.time_step == model_reduced.time_step
|
106
|
+
|
107
|
+
# Check that the reduced model maintains the same integrator of the full model.
|
108
|
+
assert model_full.integrator == model_reduced.integrator
|
109
|
+
|
101
110
|
# Build the data of the reduced model.
|
102
111
|
data_reduced = js.data.JaxSimModelData.build(
|
103
112
|
model=model_reduced,
|
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
|
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
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{jaxsim-0.5.1.dev75 → jaxsim-0.5.1.dev80}/examples/jaxsim_as_multibody_dynamics_library.ipynb
RENAMED
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
|
@@ -8,8 +8,8 @@ import jaxsim.typing as jtp
|
|
8
8
|
from .common import VelRepr
|
9
9
|
|
10
10
|
|
11
|
-
@js.common.named_scope
|
12
11
|
@jax.jit
|
12
|
+
@js.common.named_scope
|
13
13
|
def com_position(
|
14
14
|
model: js.model.JaxSimModel, data: js.data.JaxSimModelData
|
15
15
|
) -> jtp.Vector:
|
@@ -45,8 +45,8 @@ def com_position(
|
|
45
45
|
return (W_H_B @ B_p̃_CoM)[0:3].astype(float)
|
46
46
|
|
47
47
|
|
48
|
-
@js.common.named_scope
|
49
48
|
@jax.jit
|
49
|
+
@js.common.named_scope
|
50
50
|
def com_linear_velocity(
|
51
51
|
model: js.model.JaxSimModel, data: js.data.JaxSimModelData
|
52
52
|
) -> jtp.Vector:
|
@@ -76,8 +76,8 @@ def com_linear_velocity(
|
|
76
76
|
return G_vl_WG
|
77
77
|
|
78
78
|
|
79
|
-
@js.common.named_scope
|
80
79
|
@jax.jit
|
80
|
+
@js.common.named_scope
|
81
81
|
def centroidal_momentum(
|
82
82
|
model: js.model.JaxSimModel, data: js.data.JaxSimModelData
|
83
83
|
) -> jtp.Vector:
|
@@ -104,8 +104,8 @@ def centroidal_momentum(
|
|
104
104
|
return G_J @ ν
|
105
105
|
|
106
106
|
|
107
|
-
@js.common.named_scope
|
108
107
|
@jax.jit
|
108
|
+
@js.common.named_scope
|
109
109
|
def centroidal_momentum_jacobian(
|
110
110
|
model: js.model.JaxSimModel, data: js.data.JaxSimModelData
|
111
111
|
) -> jtp.Matrix:
|
@@ -153,8 +153,8 @@ def centroidal_momentum_jacobian(
|
|
153
153
|
return G_Xf_B @ B_Jh
|
154
154
|
|
155
155
|
|
156
|
-
@js.common.named_scope
|
157
156
|
@jax.jit
|
157
|
+
@js.common.named_scope
|
158
158
|
def locked_centroidal_spatial_inertia(
|
159
159
|
model: js.model.JaxSimModel, data: js.data.JaxSimModelData
|
160
160
|
):
|
@@ -191,8 +191,8 @@ def locked_centroidal_spatial_inertia(
|
|
191
191
|
return G_Xf_B @ B_Mbb_B @ B_Xv_G
|
192
192
|
|
193
193
|
|
194
|
-
@js.common.named_scope
|
195
194
|
@jax.jit
|
195
|
+
@js.common.named_scope
|
196
196
|
def average_centroidal_velocity(
|
197
197
|
model: js.model.JaxSimModel, data: js.data.JaxSimModelData
|
198
198
|
) -> jtp.Vector:
|
@@ -219,8 +219,8 @@ def average_centroidal_velocity(
|
|
219
219
|
return G_J @ ν
|
220
220
|
|
221
221
|
|
222
|
-
@js.common.named_scope
|
223
222
|
@jax.jit
|
223
|
+
@js.common.named_scope
|
224
224
|
def average_centroidal_velocity_jacobian(
|
225
225
|
model: js.model.JaxSimModel, data: js.data.JaxSimModelData
|
226
226
|
) -> jtp.Matrix:
|
@@ -246,8 +246,8 @@ def average_centroidal_velocity_jacobian(
|
|
246
246
|
return jnp.linalg.inv(G_Mbb) @ G_J
|
247
247
|
|
248
248
|
|
249
|
-
@js.common.named_scope
|
250
249
|
@jax.jit
|
250
|
+
@js.common.named_scope
|
251
251
|
def bias_acceleration(
|
252
252
|
model: js.model.JaxSimModel, data: js.data.JaxSimModelData
|
253
253
|
) -> jtp.Vector:
|
File without changes
|
@@ -16,8 +16,8 @@ from jaxsim.rbda import contacts
|
|
16
16
|
from .common import VelRepr
|
17
17
|
|
18
18
|
|
19
|
-
@js.common.named_scope
|
20
19
|
@jax.jit
|
20
|
+
@js.common.named_scope
|
21
21
|
def collidable_point_kinematics(
|
22
22
|
model: js.model.JaxSimModel, data: js.data.JaxSimModelData
|
23
23
|
) -> tuple[jtp.Matrix, jtp.Matrix]:
|
@@ -53,8 +53,8 @@ def collidable_point_kinematics(
|
|
53
53
|
return W_p_Ci, W_ṗ_Ci
|
54
54
|
|
55
55
|
|
56
|
-
@js.common.named_scope
|
57
56
|
@jax.jit
|
57
|
+
@js.common.named_scope
|
58
58
|
def collidable_point_positions(
|
59
59
|
model: js.model.JaxSimModel, data: js.data.JaxSimModelData
|
60
60
|
) -> jtp.Matrix:
|
@@ -74,8 +74,8 @@ def collidable_point_positions(
|
|
74
74
|
return W_p_Ci
|
75
75
|
|
76
76
|
|
77
|
-
@js.common.named_scope
|
78
77
|
@jax.jit
|
78
|
+
@js.common.named_scope
|
79
79
|
def collidable_point_velocities(
|
80
80
|
model: js.model.JaxSimModel, data: js.data.JaxSimModelData
|
81
81
|
) -> jtp.Matrix:
|
@@ -95,8 +95,8 @@ def collidable_point_velocities(
|
|
95
95
|
return W_ṗ_Ci
|
96
96
|
|
97
97
|
|
98
|
-
@js.common.named_scope
|
99
98
|
@jax.jit
|
99
|
+
@js.common.named_scope
|
100
100
|
def collidable_point_forces(
|
101
101
|
model: js.model.JaxSimModel,
|
102
102
|
data: js.data.JaxSimModelData,
|
@@ -133,8 +133,8 @@ def collidable_point_forces(
|
|
133
133
|
return f_Ci
|
134
134
|
|
135
135
|
|
136
|
-
@js.common.named_scope
|
137
136
|
@jax.jit
|
137
|
+
@js.common.named_scope
|
138
138
|
def collidable_point_dynamics(
|
139
139
|
model: js.model.JaxSimModel,
|
140
140
|
data: js.data.JaxSimModelData,
|
@@ -232,8 +232,8 @@ def collidable_point_dynamics(
|
|
232
232
|
return f_Ci, aux_data
|
233
233
|
|
234
234
|
|
235
|
-
@js.common.named_scope
|
236
235
|
@functools.partial(jax.jit, static_argnames=["link_names"])
|
236
|
+
@js.common.named_scope
|
237
237
|
def in_contact(
|
238
238
|
model: js.model.JaxSimModel,
|
239
239
|
data: js.data.JaxSimModelData,
|
@@ -430,8 +430,8 @@ def estimate_good_contact_parameters(
|
|
430
430
|
return parameters
|
431
431
|
|
432
432
|
|
433
|
-
@js.common.named_scope
|
434
433
|
@jax.jit
|
434
|
+
@js.common.named_scope
|
435
435
|
def transforms(model: js.model.JaxSimModel, data: js.data.JaxSimModelData) -> jtp.Array:
|
436
436
|
r"""
|
437
437
|
Return the pose of the enabled collidable points.
|
@@ -476,8 +476,8 @@ def transforms(model: js.model.JaxSimModel, data: js.data.JaxSimModelData) -> jt
|
|
476
476
|
return jax.vmap(lambda W_H_Li, L_H_Ci: W_H_Li @ L_H_Ci)(W_H_L, L_H_C)
|
477
477
|
|
478
478
|
|
479
|
-
@js.common.named_scope
|
480
479
|
@functools.partial(jax.jit, static_argnames=["output_vel_repr"])
|
480
|
+
@js.common.named_scope
|
481
481
|
def jacobian(
|
482
482
|
model: js.model.JaxSimModel,
|
483
483
|
data: js.data.JaxSimModelData,
|
@@ -569,8 +569,8 @@ def jacobian(
|
|
569
569
|
return O_J_WC
|
570
570
|
|
571
571
|
|
572
|
-
@js.common.named_scope
|
573
572
|
@functools.partial(jax.jit, static_argnames=["output_vel_repr"])
|
573
|
+
@js.common.named_scope
|
574
574
|
def jacobian_derivative(
|
575
575
|
model: js.model.JaxSimModel,
|
576
576
|
data: js.data.JaxSimModelData,
|
File without changes
|
@@ -16,8 +16,8 @@ from .common import VelRepr
|
|
16
16
|
# =======================
|
17
17
|
|
18
18
|
|
19
|
-
@js.common.named_scope
|
20
19
|
@jax.jit
|
20
|
+
@js.common.named_scope
|
21
21
|
def idx_of_parent_link(
|
22
22
|
model: js.model.JaxSimModel, *, frame_index: jtp.IntLike
|
23
23
|
) -> jtp.Int:
|
@@ -46,8 +46,8 @@ def idx_of_parent_link(
|
|
46
46
|
]
|
47
47
|
|
48
48
|
|
49
|
-
@js.common.named_scope
|
50
49
|
@functools.partial(jax.jit, static_argnames="frame_name")
|
50
|
+
@js.common.named_scope
|
51
51
|
def name_to_idx(model: js.model.JaxSimModel, *, frame_name: str) -> jtp.Int:
|
52
52
|
"""
|
53
53
|
Convert the name of a frame to its index.
|
@@ -99,8 +99,8 @@ def idx_to_name(model: js.model.JaxSimModel, *, frame_index: jtp.IntLike) -> str
|
|
99
99
|
]
|
100
100
|
|
101
101
|
|
102
|
-
@js.common.named_scope
|
103
102
|
@functools.partial(jax.jit, static_argnames=["frame_names"])
|
103
|
+
@js.common.named_scope
|
104
104
|
def names_to_idxs(
|
105
105
|
model: js.model.JaxSimModel, *, frame_names: Sequence[str]
|
106
106
|
) -> jax.Array:
|
@@ -142,8 +142,8 @@ def idxs_to_names(
|
|
142
142
|
# ==========
|
143
143
|
|
144
144
|
|
145
|
-
@js.common.named_scope
|
146
145
|
@jax.jit
|
146
|
+
@js.common.named_scope
|
147
147
|
def transform(
|
148
148
|
model: js.model.JaxSimModel,
|
149
149
|
data: js.data.JaxSimModelData,
|
@@ -184,8 +184,8 @@ def transform(
|
|
184
184
|
return W_H_L @ L_H_F
|
185
185
|
|
186
186
|
|
187
|
-
@js.common.named_scope
|
188
187
|
@functools.partial(jax.jit, static_argnames=["output_vel_repr"])
|
188
|
+
@js.common.named_scope
|
189
189
|
def velocity(
|
190
190
|
model: js.model.JaxSimModel,
|
191
191
|
data: js.data.JaxSimModelData,
|
@@ -235,8 +235,8 @@ def velocity(
|
|
235
235
|
return O_J_WF_I @ I_ν
|
236
236
|
|
237
237
|
|
238
|
-
@js.common.named_scope
|
239
238
|
@functools.partial(jax.jit, static_argnames=["output_vel_repr"])
|
239
|
+
@js.common.named_scope
|
240
240
|
def jacobian(
|
241
241
|
model: js.model.JaxSimModel,
|
242
242
|
data: js.data.JaxSimModelData,
|
@@ -315,8 +315,8 @@ def jacobian(
|
|
315
315
|
return O_J_WL_I
|
316
316
|
|
317
317
|
|
318
|
-
@js.common.named_scope
|
319
318
|
@functools.partial(jax.jit, static_argnames=["output_vel_repr"])
|
319
|
+
@js.common.named_scope
|
320
320
|
def jacobian_derivative(
|
321
321
|
model: js.model.JaxSimModel,
|
322
322
|
data: js.data.JaxSimModelData,
|
@@ -13,8 +13,8 @@ from jaxsim import exceptions
|
|
13
13
|
# =======================
|
14
14
|
|
15
15
|
|
16
|
-
@js.common.named_scope
|
17
16
|
@functools.partial(jax.jit, static_argnames="joint_name")
|
17
|
+
@js.common.named_scope
|
18
18
|
def name_to_idx(model: js.model.JaxSimModel, *, joint_name: str) -> jtp.Int:
|
19
19
|
"""
|
20
20
|
Convert the name of a joint to its index.
|
@@ -62,8 +62,8 @@ def idx_to_name(model: js.model.JaxSimModel, *, joint_index: jtp.IntLike) -> str
|
|
62
62
|
return model.kin_dyn_parameters.joint_model.joint_names[joint_index + 1]
|
63
63
|
|
64
64
|
|
65
|
-
@js.common.named_scope
|
66
65
|
@functools.partial(jax.jit, static_argnames="joint_names")
|
66
|
+
@js.common.named_scope
|
67
67
|
def names_to_idxs(
|
68
68
|
model: js.model.JaxSimModel, *, joint_names: Sequence[str]
|
69
69
|
) -> jax.Array:
|
@@ -143,8 +143,8 @@ def position_limit(
|
|
143
143
|
return s_min.astype(float), s_max.astype(float)
|
144
144
|
|
145
145
|
|
146
|
-
@js.common.named_scope
|
147
146
|
@functools.partial(jax.jit, static_argnames=["joint_names"])
|
147
|
+
@js.common.named_scope
|
148
148
|
def position_limits(
|
149
149
|
model: js.model.JaxSimModel, *, joint_names: Sequence[str] | None = None
|
150
150
|
) -> tuple[jtp.Vector, jtp.Vector]:
|
@@ -179,8 +179,8 @@ def position_limits(
|
|
179
179
|
# ======================
|
180
180
|
|
181
181
|
|
182
|
-
@js.common.named_scope
|
183
182
|
@functools.partial(jax.jit, static_argnames=["joint_names"])
|
183
|
+
@js.common.named_scope
|
184
184
|
def random_joint_positions(
|
185
185
|
model: js.model.JaxSimModel,
|
186
186
|
*,
|
File without changes
|
File without changes
|
@@ -85,8 +85,8 @@ def wrap_system_dynamics_for_integration(
|
|
85
85
|
# ==================================
|
86
86
|
|
87
87
|
|
88
|
-
@js.common.named_scope
|
89
88
|
@jax.jit
|
89
|
+
@js.common.named_scope
|
90
90
|
def system_velocity_dynamics(
|
91
91
|
model: js.model.JaxSimModel,
|
92
92
|
data: js.data.JaxSimModelData,
|
@@ -332,8 +332,8 @@ def system_acceleration(
|
|
332
332
|
return v̇_WB, s̈
|
333
333
|
|
334
334
|
|
335
|
-
@js.common.named_scope
|
336
335
|
@jax.jit
|
336
|
+
@js.common.named_scope
|
337
337
|
def system_position_dynamics(
|
338
338
|
model: js.model.JaxSimModel,
|
339
339
|
data: js.data.JaxSimModelData,
|
@@ -372,8 +372,8 @@ def system_position_dynamics(
|
|
372
372
|
return W_ṗ_B, W_Q̇_B, ṡ
|
373
373
|
|
374
374
|
|
375
|
-
@js.common.named_scope
|
376
375
|
@jax.jit
|
376
|
+
@js.common.named_scope
|
377
377
|
def system_dynamics(
|
378
378
|
model: js.model.JaxSimModel,
|
379
379
|
data: js.data.JaxSimModelData,
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
File without changes
|
File without changes
|
File without changes
|