jaxsim 0.5.1.dev37__tar.gz → 0.5.1.dev46__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.dev37 → jaxsim-0.5.1.dev46}/.github/workflows/pixi.yml +1 -1
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/PKG-INFO +2 -1
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/pyproject.toml +5 -2
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/_version.py +2 -2
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim.egg-info/PKG-INFO +2 -1
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim.egg-info/SOURCES.txt +1 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim.egg-info/requires.txt +1 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/tests/conftest.py +27 -0
- jaxsim-0.5.1.dev46/tests/test_benchmark.py +127 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/.devcontainer/Dockerfile +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/.devcontainer/devcontainer.json +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/.gitattributes +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/.github/CODEOWNERS +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/.github/dependabot.yml +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/.github/workflows/ci_cd.yml +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/.github/workflows/read_the_docs.yml +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/.gitignore +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/.pre-commit-config.yaml +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/.readthedocs.yaml +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/CONTRIBUTING.md +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/LICENSE +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/README.md +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/docs/Makefile +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/docs/conf.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/docs/examples.rst +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/docs/guide/install.rst +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/docs/index.rst +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/docs/make.bat +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/docs/modules/api.rst +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/docs/modules/integrators.rst +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/docs/modules/math.rst +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/docs/modules/mujoco.rst +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/docs/modules/parsers.rst +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/docs/modules/rbda.rst +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/docs/modules/typing.rst +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/docs/modules/utils.rst +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/environment.yml +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/examples/.gitattributes +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/examples/.gitignore +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/examples/README.md +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/examples/assets/build_cartpole_urdf.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/examples/assets/cartpole.urdf +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/examples/jaxsim_as_multibody_dynamics_library.ipynb +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/examples/jaxsim_as_physics_engine.ipynb +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/examples/jaxsim_for_robot_controllers.ipynb +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/pixi.lock +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/setup.cfg +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/setup.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/__init__.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/api/__init__.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/api/com.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/api/common.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/api/contact.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/api/data.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/api/frame.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/api/joint.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/api/kin_dyn_parameters.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/api/link.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/api/model.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/api/ode.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/api/ode_data.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/api/references.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/exceptions.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/integrators/__init__.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/integrators/common.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/integrators/fixed_step.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/integrators/variable_step.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/logging.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/math/__init__.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/math/adjoint.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/math/cross.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/math/inertia.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/math/joint_model.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/math/quaternion.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/math/rotation.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/math/skew.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/math/transform.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/mujoco/__init__.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/mujoco/__main__.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/mujoco/loaders.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/mujoco/model.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/mujoco/utils.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/mujoco/visualizer.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/parsers/__init__.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/parsers/descriptions/__init__.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/parsers/descriptions/collision.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/parsers/descriptions/joint.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/parsers/descriptions/link.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/parsers/descriptions/model.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/parsers/kinematic_graph.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/parsers/rod/__init__.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/parsers/rod/meshes.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/parsers/rod/parser.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/parsers/rod/utils.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/rbda/__init__.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/rbda/aba.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/rbda/collidable_points.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/rbda/contacts/__init__.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/rbda/contacts/common.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/rbda/contacts/relaxed_rigid.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/rbda/contacts/rigid.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/rbda/contacts/soft.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/rbda/contacts/visco_elastic.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/rbda/crba.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/rbda/forward_kinematics.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/rbda/jacobian.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/rbda/rnea.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/rbda/utils.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/terrain/__init__.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/terrain/terrain.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/typing.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/utils/__init__.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/utils/jaxsim_dataclass.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/utils/tracing.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim/utils/wrappers.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim.egg-info/dependency_links.txt +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/src/jaxsim.egg-info/top_level.txt +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/tests/__init__.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/tests/test_api_com.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/tests/test_api_contact.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/tests/test_api_data.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/tests/test_api_frame.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/tests/test_api_joint.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/tests/test_api_link.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/tests/test_api_model.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/tests/test_automatic_differentiation.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/tests/test_contact.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/tests/test_exceptions.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/tests/test_meshes.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/tests/test_pytree.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/tests/test_simulations.py +0 -0
- {jaxsim-0.5.1.dev37 → jaxsim-0.5.1.dev46}/tests/utils_idyntree.py +0 -0
@@ -35,7 +35,7 @@ jobs:
|
|
35
35
|
pixi update --json | pixi exec pixi-diff-to-markdown --explicit-column > diff.md
|
36
36
|
|
37
37
|
- name: Test project against updated pixi
|
38
|
-
run: pixi run --environment tasks-cpu
|
38
|
+
run: pixi run --environment tasks-cpu test
|
39
39
|
env:
|
40
40
|
PY_COLORS: "1"
|
41
41
|
JAX_PLATFORM_NAME: cpu
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: jaxsim
|
3
|
-
Version: 0.5.1.
|
3
|
+
Version: 0.5.1.dev46
|
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>
|
@@ -78,6 +78,7 @@ Requires-Dist: pre-commit; extra == "style"
|
|
78
78
|
Provides-Extra: testing
|
79
79
|
Requires-Dist: idyntree>=12.2.1; extra == "testing"
|
80
80
|
Requires-Dist: pytest>=6.0; extra == "testing"
|
81
|
+
Requires-Dist: pytest-benchmark; extra == "testing"
|
81
82
|
Requires-Dist: pytest-icdiff; extra == "testing"
|
82
83
|
Requires-Dist: robot-descriptions; extra == "testing"
|
83
84
|
Provides-Extra: viz
|
@@ -67,6 +67,7 @@ style = [
|
|
67
67
|
testing = [
|
68
68
|
"idyntree >= 12.2.1",
|
69
69
|
"pytest >=6.0",
|
70
|
+
"pytest-benchmark",
|
70
71
|
"pytest-icdiff",
|
71
72
|
"robot-descriptions"
|
72
73
|
]
|
@@ -121,7 +122,7 @@ multi_line_output = 3
|
|
121
122
|
profile = "black"
|
122
123
|
|
123
124
|
[tool.pytest.ini_options]
|
124
|
-
addopts = "-rsxX -v --strict-markers"
|
125
|
+
addopts = "-rsxX -v --strict-markers --benchmark-skip"
|
125
126
|
minversion = "6.0"
|
126
127
|
testpaths = [
|
127
128
|
"tests",
|
@@ -233,7 +234,8 @@ jaxsim = { path = "./", editable = true }
|
|
233
234
|
|
234
235
|
[tool.pixi.feature.test.tasks]
|
235
236
|
pipcheck = "pip check"
|
236
|
-
|
237
|
+
test = { cmd = "pytest", depends_on = ["pipcheck"] }
|
238
|
+
benchmark = { cmd = "pytest --benchmark-only", depends_on = ["pipcheck"] }
|
237
239
|
|
238
240
|
[tool.pixi.feature.test.dependencies]
|
239
241
|
black = "24.*"
|
@@ -241,6 +243,7 @@ idyntree = "*"
|
|
241
243
|
isort = "*"
|
242
244
|
pre-commit = "*"
|
243
245
|
pytest = "*"
|
246
|
+
pytest-benchmark = "*"
|
244
247
|
pytest-icdiff = "*"
|
245
248
|
robot_descriptions = "*"
|
246
249
|
|
@@ -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.dev46'
|
16
|
+
__version_tuple__ = version_tuple = (0, 5, 1, 'dev46')
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: jaxsim
|
3
|
-
Version: 0.5.1.
|
3
|
+
Version: 0.5.1.dev46
|
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>
|
@@ -78,6 +78,7 @@ Requires-Dist: pre-commit; extra == "style"
|
|
78
78
|
Provides-Extra: testing
|
79
79
|
Requires-Dist: idyntree>=12.2.1; extra == "testing"
|
80
80
|
Requires-Dist: pytest>=6.0; extra == "testing"
|
81
|
+
Requires-Dist: pytest-benchmark; extra == "testing"
|
81
82
|
Requires-Dist: pytest-icdiff; extra == "testing"
|
82
83
|
Requires-Dist: robot-descriptions; extra == "testing"
|
83
84
|
Provides-Extra: viz
|
@@ -20,6 +20,21 @@ def pytest_addoption(parser):
|
|
20
20
|
help="Run tests only if GPU is available and utilized",
|
21
21
|
)
|
22
22
|
|
23
|
+
parser.addoption(
|
24
|
+
"--batch-size",
|
25
|
+
action="store",
|
26
|
+
default="None",
|
27
|
+
help="Batch size for vectorized benchmarks (only applies to benchmark tests)",
|
28
|
+
)
|
29
|
+
|
30
|
+
|
31
|
+
def pytest_generate_tests(metafunc):
|
32
|
+
if (
|
33
|
+
"batch_size" in metafunc.fixturenames
|
34
|
+
and (batch_size := metafunc.config.getoption("--batch-size")) != "None"
|
35
|
+
):
|
36
|
+
metafunc.parametrize("batch_size", [1, int(batch_size)])
|
37
|
+
|
23
38
|
|
24
39
|
def check_gpu_usage():
|
25
40
|
# Set environment variable to prioritize GPU.
|
@@ -109,6 +124,18 @@ def velocity_representation(request) -> jaxsim.VelRepr:
|
|
109
124
|
return request.param
|
110
125
|
|
111
126
|
|
127
|
+
@pytest.fixture(scope="session")
|
128
|
+
def batch_size(request) -> int:
|
129
|
+
"""
|
130
|
+
Fixture providing the batch size for vectorized benchmarks.
|
131
|
+
|
132
|
+
Returns:
|
133
|
+
The batch size for vectorized benchmarks.
|
134
|
+
"""
|
135
|
+
|
136
|
+
return 1
|
137
|
+
|
138
|
+
|
112
139
|
# ================================
|
113
140
|
# Fixtures providing JaxSim models
|
114
141
|
# ================================
|
@@ -0,0 +1,127 @@
|
|
1
|
+
from collections.abc import Callable
|
2
|
+
|
3
|
+
import jax
|
4
|
+
import pytest
|
5
|
+
|
6
|
+
import jaxsim
|
7
|
+
import jaxsim.api as js
|
8
|
+
|
9
|
+
|
10
|
+
def vectorize_data(model: js.model.JaxSimModel, batch_size: int):
|
11
|
+
key = jax.random.PRNGKey(seed=0)
|
12
|
+
|
13
|
+
return jax.vmap(
|
14
|
+
lambda key: js.data.random_model_data(
|
15
|
+
model=model,
|
16
|
+
key=key,
|
17
|
+
)
|
18
|
+
)(jax.numpy.repeat(key[None, :], repeats=batch_size, axis=0))
|
19
|
+
|
20
|
+
|
21
|
+
def benchmark_test_function(
|
22
|
+
func: Callable, model: js.model.JaxSimModel, benchmark, batch_size
|
23
|
+
):
|
24
|
+
"""Reusability wrapper for benchmark tests."""
|
25
|
+
data = vectorize_data(model=model, batch_size=batch_size)
|
26
|
+
|
27
|
+
# Warm-up call to avoid including compilation time
|
28
|
+
jax.vmap(func, in_axes=(None, 0))(model, data)
|
29
|
+
benchmark(jax.vmap(func, in_axes=(None, 0)), model, data)
|
30
|
+
|
31
|
+
|
32
|
+
@pytest.mark.benchmark
|
33
|
+
def test_forward_dynamics_aba(
|
34
|
+
jaxsim_model_ergocub_reduced: js.model.JaxSimModel, benchmark, batch_size
|
35
|
+
):
|
36
|
+
model = jaxsim_model_ergocub_reduced
|
37
|
+
|
38
|
+
benchmark_test_function(js.model.forward_dynamics_aba, model, benchmark, batch_size)
|
39
|
+
|
40
|
+
|
41
|
+
@pytest.mark.benchmark
|
42
|
+
def test_free_floating_bias_forces(
|
43
|
+
jaxsim_model_ergocub_reduced: js.model.JaxSimModel, benchmark, batch_size
|
44
|
+
):
|
45
|
+
model = jaxsim_model_ergocub_reduced
|
46
|
+
|
47
|
+
benchmark_test_function(
|
48
|
+
js.model.free_floating_bias_forces, model, benchmark, batch_size
|
49
|
+
)
|
50
|
+
|
51
|
+
|
52
|
+
@pytest.mark.benchmark
|
53
|
+
def test_forward_kinematics(
|
54
|
+
jaxsim_model_ergocub_reduced: js.model.JaxSimModel, benchmark, batch_size
|
55
|
+
):
|
56
|
+
model = jaxsim_model_ergocub_reduced
|
57
|
+
|
58
|
+
benchmark_test_function(js.model.forward_kinematics, model, benchmark, batch_size)
|
59
|
+
|
60
|
+
|
61
|
+
@pytest.mark.benchmark
|
62
|
+
def test_free_floating_mass_matrix(
|
63
|
+
jaxsim_model_ergocub_reduced: js.model.JaxSimModel, benchmark, batch_size
|
64
|
+
):
|
65
|
+
model = jaxsim_model_ergocub_reduced
|
66
|
+
|
67
|
+
benchmark_test_function(
|
68
|
+
js.model.free_floating_mass_matrix, model, benchmark, batch_size
|
69
|
+
)
|
70
|
+
|
71
|
+
|
72
|
+
@pytest.mark.benchmark
|
73
|
+
def test_free_floating_jacobian(
|
74
|
+
jaxsim_model_ergocub_reduced: js.model.JaxSimModel, benchmark, batch_size
|
75
|
+
):
|
76
|
+
model = jaxsim_model_ergocub_reduced
|
77
|
+
|
78
|
+
benchmark_test_function(
|
79
|
+
js.model.generalized_free_floating_jacobian, model, benchmark, batch_size
|
80
|
+
)
|
81
|
+
|
82
|
+
|
83
|
+
@pytest.mark.benchmark
|
84
|
+
def test_free_floating_jacobian_derivative(
|
85
|
+
jaxsim_model_ergocub_reduced: js.model.JaxSimModel, benchmark, batch_size
|
86
|
+
):
|
87
|
+
model = jaxsim_model_ergocub_reduced
|
88
|
+
|
89
|
+
benchmark_test_function(
|
90
|
+
js.model.generalized_free_floating_jacobian_derivative,
|
91
|
+
model,
|
92
|
+
benchmark,
|
93
|
+
batch_size,
|
94
|
+
)
|
95
|
+
|
96
|
+
|
97
|
+
@pytest.mark.benchmark
|
98
|
+
def test_soft_contact_model(
|
99
|
+
jaxsim_model_ergocub_reduced: js.model.JaxSimModel, benchmark, batch_size
|
100
|
+
):
|
101
|
+
model = jaxsim_model_ergocub_reduced
|
102
|
+
|
103
|
+
benchmark_test_function(js.ode.system_dynamics, model, benchmark, batch_size)
|
104
|
+
|
105
|
+
|
106
|
+
@pytest.mark.benchmark
|
107
|
+
def test_rigid_contact_model(
|
108
|
+
jaxsim_model_ergocub_reduced: js.model.JaxSimModel, benchmark, batch_size
|
109
|
+
):
|
110
|
+
model = jaxsim_model_ergocub_reduced
|
111
|
+
|
112
|
+
with model.editable(validate=False) as model:
|
113
|
+
model.contact_model = jaxsim.rbda.contacts.RigidContacts()
|
114
|
+
|
115
|
+
benchmark_test_function(js.ode.system_dynamics, model, benchmark, batch_size)
|
116
|
+
|
117
|
+
|
118
|
+
@pytest.mark.benchmark
|
119
|
+
def test_relaxed_rigid_contact_model(
|
120
|
+
jaxsim_model_ergocub_reduced: js.model.JaxSimModel, benchmark, batch_size
|
121
|
+
):
|
122
|
+
model = jaxsim_model_ergocub_reduced
|
123
|
+
|
124
|
+
with model.editable(validate=False) as model:
|
125
|
+
model.contact_model = jaxsim.rbda.contacts.RelaxedRigidContacts()
|
126
|
+
|
127
|
+
benchmark_test_function(js.ode.system_dynamics, model, benchmark, batch_size)
|
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.dev37 → jaxsim-0.5.1.dev46}/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
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|