jaxsim 0.2.dev400__tar.gz → 0.2.dev423__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.2.dev400 → jaxsim-0.2.dev423}/.github/workflows/ci_cd.yml +1 -1
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/LICENSE +1 -1
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/PKG-INFO +1 -1
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/docs/conf.py +8 -17
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/docs/guide/install.rst +2 -2
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/docs/index.rst +58 -44
- jaxsim-0.2.dev423/docs/modules/api.rst +68 -0
- jaxsim-0.2.dev423/docs/modules/index.rst +19 -0
- jaxsim-0.2.dev423/docs/modules/integrators.rst +23 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/docs/modules/math.rst +2 -14
- jaxsim-0.2.dev423/docs/modules/mujoco.rst +27 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/docs/modules/parsers.rst +1 -1
- jaxsim-0.2.dev423/docs/modules/rbda.rst +59 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/docs/modules/typing.rst +2 -2
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/docs/modules/utils.rst +1 -4
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/environment.yml +3 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/examples/.gitattributes +0 -1
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/examples/.gitignore +0 -1
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/examples/README.md +3 -3
- jaxsim-0.2.dev423/examples/assets/cartpole.urdf +83 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/pyproject.toml +1 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/_version.py +2 -2
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/model.py +2 -2
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/mujoco/loaders.py +63 -6
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/mujoco/model.py +38 -19
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/mujoco/visualizer.py +25 -9
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim.egg-info/PKG-INFO +1 -1
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim.egg-info/SOURCES.txt +5 -3
- jaxsim-0.2.dev400/docs/modules/high_level.rst +0 -30
- jaxsim-0.2.dev400/docs/modules/physics.rst +0 -40
- jaxsim-0.2.dev400/docs/modules/simulation.rst +0 -34
- jaxsim-0.2.dev400/examples/assets/cartpole.urdf +0 -83
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/.devcontainer/Dockerfile +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/.devcontainer/devcontainer.json +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/.github/CODEOWNERS +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/.github/workflows/read_the_docs.yml +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/.github/workflows/style.yml +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/.gitignore +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/.pre-commit-config.yaml +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/.readthedocs.yaml +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/CONTRIBUTING.md +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/README.md +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/docs/Makefile +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/docs/make.bat +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/examples/PD_controller.ipynb +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/examples/Parallel_computing.ipynb +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/examples/pixi.lock +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/examples/pixi.toml +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/setup.cfg +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/setup.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/__init__.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/__init__.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/com.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/common.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/contact.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/data.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/joint.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/kin_dyn_parameters.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/link.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/ode.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/ode_data.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/references.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/integrators/__init__.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/integrators/common.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/integrators/fixed_step.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/integrators/variable_step.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/logging.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/math/__init__.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/math/adjoint.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/math/cross.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/math/inertia.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/math/joint_model.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/math/quaternion.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/math/rotation.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/math/skew.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/math/transform.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/mujoco/__init__.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/mujoco/__main__.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/parsers/__init__.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/parsers/descriptions/__init__.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/parsers/descriptions/collision.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/parsers/descriptions/joint.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/parsers/descriptions/link.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/parsers/descriptions/model.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/parsers/kinematic_graph.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/parsers/rod/__init__.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/parsers/rod/parser.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/parsers/rod/utils.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/rbda/__init__.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/rbda/aba.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/rbda/collidable_points.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/rbda/crba.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/rbda/forward_kinematics.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/rbda/jacobian.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/rbda/rnea.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/rbda/soft_contacts.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/rbda/utils.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/terrain/__init__.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/terrain/terrain.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/typing.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/utils/__init__.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/utils/hashless.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/utils/jaxsim_dataclass.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/utils/tracing.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim.egg-info/dependency_links.txt +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim.egg-info/not-zip-safe +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim.egg-info/requires.txt +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim.egg-info/top_level.txt +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/__init__.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/conftest.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/test_api_com.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/test_api_data.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/test_api_joint.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/test_api_link.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/test_api_model.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/test_automatic_differentiation.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/test_pytree.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/test_simulations.py +0 -0
- {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/utils_idyntree.py +0 -0
@@ -4,23 +4,13 @@ import sys
|
|
4
4
|
|
5
5
|
from pkg_resources import get_distribution
|
6
6
|
|
7
|
+
if os.environ.get("READTHEDOCS"):
|
8
|
+
checkout_name = os.path.basename(os.path.dirname(os.path.realpath(__file__)))
|
9
|
+
os.environ["CONDA_PREFIX"] = os.path.realpath(
|
10
|
+
os.path.join("..", "..", "conda", checkout_name)
|
11
|
+
)
|
7
12
|
|
8
|
-
|
9
|
-
with open(path, "r+") as f:
|
10
|
-
contents = f.read()
|
11
|
-
if not contents.startswith("from __future__ import annotations"):
|
12
|
-
f.seek(0, 0)
|
13
|
-
f.write("from __future__ import annotations " + contents)
|
14
|
-
|
15
|
-
|
16
|
-
def _recursive_add_annotations_import():
|
17
|
-
for path, _, files in os.walk("../jaxsim/"):
|
18
|
-
for file in [f for f in files if f.endswith(".py")]:
|
19
|
-
_add_annotations_import(os.path.join(path, file))
|
20
|
-
|
21
|
-
|
22
|
-
if "READTHEDOCS" in os.environ:
|
23
|
-
_recursive_add_annotations_import()
|
13
|
+
import jaxsim
|
24
14
|
|
25
15
|
# -- Version information
|
26
16
|
|
@@ -58,13 +48,14 @@ extensions = [
|
|
58
48
|
"sphinx_autodoc_typehints",
|
59
49
|
"sphinx_multiversion",
|
60
50
|
"enum_tools.autoenum",
|
51
|
+
"sphinx_design",
|
61
52
|
]
|
62
53
|
|
63
54
|
# -- Options for intersphinx extension
|
64
55
|
|
65
56
|
language = "en"
|
66
57
|
|
67
|
-
html_theme = "
|
58
|
+
html_theme = "sphinx_book_theme"
|
68
59
|
|
69
60
|
templates_path = ["_templates"]
|
70
61
|
|
@@ -6,12 +6,12 @@ Installation
|
|
6
6
|
Prerequisites
|
7
7
|
-------------
|
8
8
|
|
9
|
-
JAXsim requires Python 3.11 or later.
|
9
|
+
JAXsim requires Python 3.11 or later.
|
10
10
|
|
11
11
|
Basic Installation
|
12
12
|
------------------
|
13
13
|
|
14
|
-
You can install the project with using `conda`_:
|
14
|
+
You can install the project with using `conda`_:
|
15
15
|
|
16
16
|
.. code-block:: bash
|
17
17
|
|
@@ -3,30 +3,68 @@ JAXsim
|
|
3
3
|
|
4
4
|
A scalable physics engine and multibody dynamics library implemented with JAX. With JIT batteries 🔋
|
5
5
|
|
6
|
-
.. warning::
|
7
|
-
This project is still experimental, APIs could change without notice.
|
8
|
-
|
9
6
|
.. note::
|
10
7
|
This simulator currently focuses on locomotion applications. Only contacts with ground are supported.
|
11
8
|
|
12
9
|
Features
|
13
10
|
--------
|
14
11
|
|
15
|
-
|
16
|
-
|
17
|
-
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
-
|
22
|
-
|
23
|
-
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
-
|
12
|
+
.. grid::
|
13
|
+
|
14
|
+
.. grid-item::
|
15
|
+
:columns: 12 12 12 6
|
16
|
+
|
17
|
+
.. card:: Performance
|
18
|
+
:class-card: sd-border-0
|
19
|
+
:shadow: none
|
20
|
+
:class-title: sd-fs-5
|
21
|
+
|
22
|
+
.. div:: sd-font-normal
|
23
|
+
|
24
|
+
Physics engine in reduced coordinates implemented with `JAX <https://github.com/google/jax/>`_.
|
25
|
+
Compatibility with JIT compilation for increased performance and transparent support to execute logic on CPUs, GPUs, and TPUs.
|
26
|
+
Parallel multi-body simulations on hardware accelerators for significantly increased throughput
|
27
|
+
|
28
|
+
.. grid-item::
|
29
|
+
:columns: 12 12 12 6
|
30
|
+
|
31
|
+
.. card:: Model Parsing
|
32
|
+
:class-card: sd-border-0
|
33
|
+
:shadow: none
|
34
|
+
:class-title: sd-fs-5
|
35
|
+
|
36
|
+
.. div:: sd-font-normal
|
37
|
+
|
38
|
+
Support for SDF models (and, upon conversion, URDF models). Revolute, prismatic, and fixed joints supported.
|
39
|
+
|
40
|
+
.. grid-item::
|
41
|
+
:columns: 12 12 12 6
|
42
|
+
|
43
|
+
.. card:: Automatic Differentiation
|
44
|
+
:class-card: sd-border-0
|
45
|
+
:shadow: none
|
46
|
+
:class-title: sd-fs-5
|
47
|
+
|
48
|
+
.. div:: sd-font-normal
|
49
|
+
|
50
|
+
Support for automatic differentiation of rigid body dynamics algorithms (RBDAs) for model-based robotics research.
|
51
|
+
Soft contacts model supporting full friction cone and sticking / slipping transition.
|
52
|
+
|
53
|
+
.. grid-item::
|
54
|
+
:columns: 12 12 12 6
|
55
|
+
|
56
|
+
.. card:: Complex Dynamics
|
57
|
+
:class-card: sd-border-0
|
58
|
+
:shadow: none
|
59
|
+
:class-title: sd-fs-5
|
60
|
+
|
61
|
+
.. div:: sd-font-normal
|
62
|
+
|
63
|
+
JAXsim provides a variety of integrators for the simulation of multibody dynamics, including RK4, Heun, Euler, and more.
|
64
|
+
Support of `multiple velocities representations <https://research.tue.nl/en/publications/multibody-dynamics-notation-version-2>`_.
|
65
|
+
|
66
|
+
|
67
|
+
----
|
30
68
|
|
31
69
|
.. toctree::
|
32
70
|
:hidden:
|
@@ -37,17 +75,10 @@ Features
|
|
37
75
|
|
38
76
|
.. toctree::
|
39
77
|
:hidden:
|
40
|
-
:maxdepth:
|
78
|
+
:maxdepth: 1
|
41
79
|
:caption: JAXsim API
|
42
80
|
|
43
|
-
modules/
|
44
|
-
modules/math
|
45
|
-
modules/parsers
|
46
|
-
modules/physics
|
47
|
-
modules/simulation
|
48
|
-
modules/typing
|
49
|
-
modules/utils
|
50
|
-
|
81
|
+
modules/index
|
51
82
|
|
52
83
|
Examples
|
53
84
|
--------
|
@@ -73,23 +104,6 @@ Here below we summarize the differences between the projects:
|
|
73
104
|
- Contrarily to brax, JAXsim only supports collision detection between bodies and a compliant ground surface.
|
74
105
|
- The RBDAs of JAXsim support automatic differentiation, but this functionality has not been thoroughly tested.
|
75
106
|
|
76
|
-
Contributing
|
77
|
-
------------
|
78
|
-
|
79
|
-
Pull requests are welcome.
|
80
|
-
For major changes, please open an issue first to discuss what you would like to change.
|
81
|
-
|
82
|
-
Citing
|
83
|
-
------
|
84
|
-
|
85
|
-
.. code-block:: bibtex
|
86
|
-
|
87
|
-
@software{ferigo_jaxsim_2022,
|
88
|
-
author = {Diego Ferigo and Silvio Traversaro and Daniele Pucci},
|
89
|
-
title = {{JAXsim}: A Physics Engine in Reduced Coordinates and Multibody Dynamics Library for Control and Robot Learning},
|
90
|
-
url = {http://github.com/ami-iit/jaxsim},
|
91
|
-
year = {2022},
|
92
|
-
}
|
93
107
|
|
94
108
|
People
|
95
109
|
------
|
@@ -0,0 +1,68 @@
|
|
1
|
+
Functional API
|
2
|
+
==============
|
3
|
+
|
4
|
+
.. currentmodule:: jaxsim.api
|
5
|
+
|
6
|
+
Model
|
7
|
+
~~~~~
|
8
|
+
|
9
|
+
.. automodule:: jaxsim.api.model
|
10
|
+
:members:
|
11
|
+
|
12
|
+
Data
|
13
|
+
~~~~
|
14
|
+
|
15
|
+
.. automodule:: jaxsim.api.data
|
16
|
+
:members:
|
17
|
+
|
18
|
+
Contact
|
19
|
+
~~~~~~~
|
20
|
+
|
21
|
+
.. automodule:: jaxsim.api.contact
|
22
|
+
:members:
|
23
|
+
|
24
|
+
KinDynParameters
|
25
|
+
~~~~~~~~~~~~~~~~
|
26
|
+
|
27
|
+
.. automodule:: jaxsim.api.kin_dyn_parameters
|
28
|
+
:members:
|
29
|
+
|
30
|
+
Joint
|
31
|
+
~~~~~
|
32
|
+
|
33
|
+
.. automodule:: jaxsim.api.joint
|
34
|
+
:members:
|
35
|
+
|
36
|
+
Link
|
37
|
+
~~~~~
|
38
|
+
.. automodule:: jaxsim.api.link
|
39
|
+
:members:
|
40
|
+
|
41
|
+
CoM
|
42
|
+
~~~
|
43
|
+
.. automodule:: jaxsim.api.com
|
44
|
+
:members:
|
45
|
+
|
46
|
+
ODE Data
|
47
|
+
~~~~~~~~
|
48
|
+
|
49
|
+
.. automodule:: jaxsim.api.ode_data
|
50
|
+
:members:
|
51
|
+
|
52
|
+
.. automodule:: jaxsim.api.ode
|
53
|
+
:members:
|
54
|
+
|
55
|
+
References
|
56
|
+
~~~~~~~~~~
|
57
|
+
|
58
|
+
.. automodule:: jaxsim.api.references
|
59
|
+
:members:
|
60
|
+
|
61
|
+
Common
|
62
|
+
~~~~~~
|
63
|
+
|
64
|
+
.. autoflag:: jaxsim.api.common.VelRepr
|
65
|
+
:members:
|
66
|
+
|
67
|
+
.. autoclass:: jaxsim.api.common.ModelDataWithVelocityRepresentation
|
68
|
+
:members:
|
@@ -0,0 +1,23 @@
|
|
1
|
+
Integrators
|
2
|
+
===========
|
3
|
+
|
4
|
+
.. currentmodule:: jaxsim.integrators
|
5
|
+
|
6
|
+
|
7
|
+
Common
|
8
|
+
~~~~~~
|
9
|
+
|
10
|
+
.. automodule:: jaxsim.integrators.common
|
11
|
+
:members:
|
12
|
+
|
13
|
+
Fixed Step
|
14
|
+
~~~~~~~~~~
|
15
|
+
|
16
|
+
.. automodule:: jaxsim.integrators.fixed_step
|
17
|
+
:members:
|
18
|
+
|
19
|
+
Variable Step
|
20
|
+
~~~~~~~~~~~~~
|
21
|
+
|
22
|
+
.. automodule:: jaxsim.integrators.variable_step
|
23
|
+
:members:
|
@@ -1,13 +1,9 @@
|
|
1
|
-
Math
|
1
|
+
Math
|
2
2
|
====
|
3
3
|
|
4
4
|
.. currentmodule:: jaxsim.math
|
5
|
-
|
6
|
-
.. automodule:: jaxsim.math.adjoint
|
7
|
-
:members:
|
8
|
-
:undoc-members:
|
9
5
|
|
10
|
-
.. automodule:: jaxsim.math.
|
6
|
+
.. automodule:: jaxsim.math.adjoint
|
11
7
|
:members:
|
12
8
|
:undoc-members:
|
13
9
|
|
@@ -19,14 +15,6 @@ Math
|
|
19
15
|
:members:
|
20
16
|
:undoc-members:
|
21
17
|
|
22
|
-
.. automodule:: jaxsim.math.joint
|
23
|
-
:members:
|
24
|
-
:undoc-members:
|
25
|
-
|
26
|
-
.. automodule:: jaxsim.math.plucker
|
27
|
-
:members:
|
28
|
-
:undoc-members:
|
29
|
-
|
30
18
|
.. automodule:: jaxsim.math.quaternion
|
31
19
|
:members:
|
32
20
|
:undoc-members:
|
@@ -0,0 +1,27 @@
|
|
1
|
+
MuJoCo Visualizer
|
2
|
+
==================
|
3
|
+
|
4
|
+
JAXsim provides a simple interface with MuJoCo's visualizer. The visualizer is
|
5
|
+
a separate process that communicates with the main simulation process. This
|
6
|
+
allows for the simulation to run at full speed while the visualizer can run at
|
7
|
+
a different frame rate.
|
8
|
+
|
9
|
+
.. currentmodule:: jaxsim.mujoco
|
10
|
+
|
11
|
+
Loaders
|
12
|
+
~~~~~~~
|
13
|
+
|
14
|
+
.. automodule:: jaxsim.mujoco.loaders
|
15
|
+
:members:
|
16
|
+
|
17
|
+
Model
|
18
|
+
~~~~~
|
19
|
+
|
20
|
+
.. automodule:: jaxsim.mujoco.model
|
21
|
+
:members:
|
22
|
+
|
23
|
+
Visualizer
|
24
|
+
~~~~~~~~~~
|
25
|
+
|
26
|
+
.. automodule:: jaxsim.mujoco.visualizer
|
27
|
+
:members:
|
@@ -0,0 +1,59 @@
|
|
1
|
+
Rigid Body Dynamics Algorithms
|
2
|
+
==============================
|
3
|
+
|
4
|
+
This module provides a set of algorithms for rigid body dynamics.
|
5
|
+
|
6
|
+
.. currentmodule:: jaxsim.rbda
|
7
|
+
|
8
|
+
.. autosummary::
|
9
|
+
:toctree: _autosummary
|
10
|
+
|
11
|
+
aba
|
12
|
+
collidable_points
|
13
|
+
crba
|
14
|
+
forward_kinematics
|
15
|
+
jacobian
|
16
|
+
soft_contacts
|
17
|
+
utils
|
18
|
+
|
19
|
+
Articulated Body Algorithm
|
20
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
21
|
+
|
22
|
+
.. automodule:: jaxsim.rbda.aba
|
23
|
+
:members:
|
24
|
+
|
25
|
+
Collision Detection
|
26
|
+
~~~~~~~~~~~~~~~~~~~
|
27
|
+
|
28
|
+
.. automodule:: jaxsim.rbda.collidable_points
|
29
|
+
:members:
|
30
|
+
|
31
|
+
Composite Rigid Body Algorithm
|
32
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
33
|
+
|
34
|
+
.. automodule:: jaxsim.rbda.crba
|
35
|
+
:members:
|
36
|
+
|
37
|
+
Forward Kinetmatics
|
38
|
+
~~~~~~~~~~~~~~~~~~~
|
39
|
+
|
40
|
+
.. automodule:: jaxsim.rbda.forward_kinematics
|
41
|
+
:members:
|
42
|
+
|
43
|
+
Jacobians
|
44
|
+
~~~~~~~~~
|
45
|
+
|
46
|
+
.. automodule:: jaxsim.rbda.jacobian
|
47
|
+
:members:
|
48
|
+
|
49
|
+
Soft Contacts
|
50
|
+
~~~~~~~~~~~~~
|
51
|
+
|
52
|
+
.. automodule:: jaxsim.rbda.soft_contacts
|
53
|
+
:members:
|
54
|
+
|
55
|
+
Utilities
|
56
|
+
~~~~~~~~~
|
57
|
+
|
58
|
+
.. automodule:: jaxsim.rbda.utils
|
59
|
+
:members:
|
@@ -21,12 +21,12 @@ The simplest way to run the examples is by accessing the provided Google Colab n
|
|
21
21
|
|
22
22
|
For local execution, follow these steps:
|
23
23
|
|
24
|
-
1. **Install `pixi`:**
|
24
|
+
1. **Install `pixi`:**
|
25
25
|
|
26
26
|
As per the [official documentation](https://pixi.sh/#installation):
|
27
27
|
|
28
28
|
```bash
|
29
|
-
curl -fsSL https://pixi.sh/install.sh | bash
|
29
|
+
curl -fsSL https://pixi.sh/install.sh | bash
|
30
30
|
```
|
31
31
|
|
32
32
|
2. **Run the Example Notebook:**
|
@@ -37,4 +37,4 @@ Use `pixi run <notebook_name>` to execute the example notebook locally, e.g.:
|
|
37
37
|
pixi run PD_controller
|
38
38
|
```
|
39
39
|
|
40
|
-
This command will automatically handle the installation of necessary dependencies and execute the examples within a self-contained environment
|
40
|
+
This command will automatically handle the installation of necessary dependencies and execute the examples within a self-contained environment
|
@@ -0,0 +1,83 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!--Create with rod using build_cartpole_model.py -->
|
3
|
+
<robot name="cartpole">
|
4
|
+
<link name="world"/>
|
5
|
+
<link name="rail">
|
6
|
+
<inertial>
|
7
|
+
<origin xyz="0.0 0.0 1.2" rpy="1.5707963267948963 0.0 0.0"/>
|
8
|
+
<mass value="5.0"/>
|
9
|
+
<inertia ixx="10.416697916666665" ixy="0.0" ixz="0.0" iyy="10.416697916666665" iyz="0.0" izz="6.25e-05"/>
|
10
|
+
</inertial>
|
11
|
+
<visual name="rail_visual">
|
12
|
+
<origin xyz="0.0 0.0 1.2" rpy="1.5707963267948963 0.0 0.0"/>
|
13
|
+
<geometry>
|
14
|
+
<cylinder radius="0.005" length="5.0"/>
|
15
|
+
</geometry>
|
16
|
+
</visual>
|
17
|
+
<collision name="rail_collision">
|
18
|
+
<origin xyz="0.0 0.0 1.2" rpy="1.5707963267948963 0.0 0.0"/>
|
19
|
+
<geometry>
|
20
|
+
<cylinder radius="0.005" length="5.0"/>
|
21
|
+
</geometry>
|
22
|
+
</collision>
|
23
|
+
</link>
|
24
|
+
<link name="cart">
|
25
|
+
<inertial>
|
26
|
+
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
|
27
|
+
<mass value="1.0"/>
|
28
|
+
<inertia ixx="0.0035416666666666674" ixy="0.0" ixz="0.0" iyy="0.0010416666666666669" iyz="0.0" izz="0.0041666666666666675"/>
|
29
|
+
</inertial>
|
30
|
+
<visual name="cart_visual">
|
31
|
+
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
|
32
|
+
<geometry>
|
33
|
+
<box size="0.1 0.2 0.05"/>
|
34
|
+
</geometry>
|
35
|
+
</visual>
|
36
|
+
<collision name="cart_collision">
|
37
|
+
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
|
38
|
+
<geometry>
|
39
|
+
<box size="0.1 0.2 0.05"/>
|
40
|
+
</geometry>
|
41
|
+
</collision>
|
42
|
+
</link>
|
43
|
+
<link name="pole">
|
44
|
+
<inertial>
|
45
|
+
<origin xyz="0.0 0.0 0.5" rpy="0.0 0.0 0.0"/>
|
46
|
+
<mass value="0.1"/>
|
47
|
+
<inertia ixx="0.008333958333333334" ixy="0.0" ixz="0.0" iyy="0.008333958333333334" iyz="0.0" izz="1.25e-06"/>
|
48
|
+
</inertial>
|
49
|
+
<visual name="pole_visual">
|
50
|
+
<origin xyz="0.0 0.0 0.5" rpy="0.0 0.0 0.0"/>
|
51
|
+
<geometry>
|
52
|
+
<cylinder radius="0.005" length="1.0"/>
|
53
|
+
</geometry>
|
54
|
+
</visual>
|
55
|
+
<collision name="pole_collision">
|
56
|
+
<origin xyz="0.0 0.0 0.5" rpy="0.0 0.0 0.0"/>
|
57
|
+
<geometry>
|
58
|
+
<cylinder radius="0.005" length="1.0"/>
|
59
|
+
</geometry>
|
60
|
+
</collision>
|
61
|
+
</link>
|
62
|
+
<joint name="world_to_rail" type="fixed">
|
63
|
+
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
|
64
|
+
<parent link="world"/>
|
65
|
+
<child link="rail"/>
|
66
|
+
</joint>
|
67
|
+
<joint name="linear" type="prismatic">
|
68
|
+
<origin xyz="0.0 0.0 1.2" rpy="0.0 0.0 0.0"/>
|
69
|
+
<parent link="rail"/>
|
70
|
+
<child link="cart"/>
|
71
|
+
<axis xyz="0 1 0"/>
|
72
|
+
<limit effort="500.0" velocity="10.0" lower="-2.4" upper="2.4"/>
|
73
|
+
</joint>
|
74
|
+
<joint name="pivot" type="revolute">
|
75
|
+
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
|
76
|
+
<parent link="cart"/>
|
77
|
+
<child link="pole"/>
|
78
|
+
<axis xyz="1 0 0"/>
|
79
|
+
<!-- We avoid to use -3.4028234663852886e+38 as limits as mujoco parser have some problems with this,
|
80
|
+
TODO(traversaro) report issue in mujoco upstream -->
|
81
|
+
<limit effort="500.0" velocity="10.0" lower="-100000000" upper="100000000"/>
|
82
|
+
</joint>
|
83
|
+
</robot>
|
@@ -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.
|
16
|
-
__version_tuple__ = version_tuple = (0, 2, '
|
15
|
+
__version__ = version = '0.2.dev423'
|
16
|
+
__version_tuple__ = version_tuple = (0, 2, 'dev423')
|
@@ -986,8 +986,8 @@ def free_floating_gravity_forces(
|
|
986
986
|
def free_floating_bias_forces(
|
987
987
|
model: JaxSimModel, data: js.data.JaxSimModelData
|
988
988
|
) -> jtp.Vector:
|
989
|
-
"""
|
990
|
-
Compute the free-floating bias forces :math:`h(
|
989
|
+
r"""
|
990
|
+
Compute the free-floating bias forces :math:`h(\mathbf{q}, \boldsymbol{\nu})`
|
991
991
|
of the model.
|
992
992
|
|
993
993
|
Args:
|