jaxsim 0.3.1.dev94__tar.gz → 0.3.1.dev113__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.3.1.dev94 → jaxsim-0.3.1.dev113}/.gitignore +4 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/.readthedocs.yaml +2 -2
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/PKG-INFO +1 -1
- jaxsim-0.3.1.dev113/docs/conf.py +124 -0
- jaxsim-0.3.1.dev113/docs/examples.rst +46 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/docs/index.rst +20 -9
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/docs/modules/api.rst +28 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/docs/modules/rbda.rst +4 -24
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/environment.yml +5 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/examples/PD_controller.ipynb +14 -15
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/examples/README.md +3 -4
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/_version.py +2 -2
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/typing.py +7 -2
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim.egg-info/PKG-INFO +1 -1
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim.egg-info/SOURCES.txt +1 -1
- jaxsim-0.3.1.dev94/docs/conf.py +0 -74
- jaxsim-0.3.1.dev94/docs/modules/index.rst +0 -19
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/.devcontainer/Dockerfile +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/.devcontainer/devcontainer.json +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/.gitattributes +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/.github/CODEOWNERS +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/.github/workflows/ci_cd.yml +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/.github/workflows/read_the_docs.yml +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/.github/workflows/style.yml +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/.pre-commit-config.yaml +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/CONTRIBUTING.md +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/LICENSE +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/README.md +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/docs/Makefile +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/docs/guide/install.rst +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/docs/make.bat +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/docs/modules/integrators.rst +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/docs/modules/math.rst +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/docs/modules/mujoco.rst +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/docs/modules/parsers.rst +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/docs/modules/typing.rst +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/docs/modules/utils.rst +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/examples/.gitattributes +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/examples/.gitignore +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/examples/Parallel_computing.ipynb +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/examples/assets/cartpole.urdf +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/pixi.lock +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/pyproject.toml +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/setup.cfg +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/setup.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/api/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/api/com.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/api/common.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/api/contact.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/api/data.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/api/frame.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/api/joint.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/api/kin_dyn_parameters.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/api/link.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/api/model.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/api/ode.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/api/ode_data.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/api/references.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/exceptions.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/integrators/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/integrators/common.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/integrators/fixed_step.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/integrators/variable_step.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/logging.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/math/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/math/adjoint.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/math/cross.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/math/inertia.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/math/joint_model.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/math/quaternion.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/math/rotation.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/math/skew.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/math/transform.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/mujoco/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/mujoco/__main__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/mujoco/loaders.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/mujoco/model.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/mujoco/visualizer.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/parsers/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/parsers/descriptions/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/parsers/descriptions/collision.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/parsers/descriptions/joint.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/parsers/descriptions/link.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/parsers/descriptions/model.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/parsers/kinematic_graph.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/parsers/rod/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/parsers/rod/parser.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/parsers/rod/utils.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/rbda/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/rbda/aba.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/rbda/collidable_points.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/rbda/contacts/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/rbda/contacts/common.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/rbda/contacts/soft.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/rbda/crba.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/rbda/forward_kinematics.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/rbda/jacobian.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/rbda/rnea.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/rbda/utils.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/terrain/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/terrain/terrain.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/utils/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/utils/jaxsim_dataclass.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/utils/tracing.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim/utils/wrappers.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim.egg-info/dependency_links.txt +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim.egg-info/not-zip-safe +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim.egg-info/requires.txt +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/src/jaxsim.egg-info/top_level.txt +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/tests/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/tests/conftest.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/tests/test_api_com.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/tests/test_api_contact.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/tests/test_api_data.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/tests/test_api_frame.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/tests/test_api_joint.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/tests/test_api_link.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/tests/test_api_model.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/tests/test_automatic_differentiation.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/tests/test_contact.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/tests/test_exceptions.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/tests/test_pytree.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/tests/test_simulations.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev113}/tests/utils_idyntree.py +0 -0
@@ -0,0 +1,124 @@
|
|
1
|
+
# Configuration file for the Sphinx documentation builder.
|
2
|
+
import os
|
3
|
+
import sys
|
4
|
+
|
5
|
+
from pkg_resources import get_distribution
|
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
|
+
)
|
12
|
+
|
13
|
+
import jaxsim
|
14
|
+
|
15
|
+
# -- Version information
|
16
|
+
|
17
|
+
sys.path.insert(0, os.path.abspath("."))
|
18
|
+
sys.path.insert(0, os.path.abspath("../"))
|
19
|
+
sys.path.insert(0, os.path.abspath("../../"))
|
20
|
+
|
21
|
+
module_path = os.path.abspath("../src/")
|
22
|
+
sys.path.insert(0, module_path)
|
23
|
+
|
24
|
+
__version__ = get_distribution("jaxsim").version
|
25
|
+
|
26
|
+
# -- Project information
|
27
|
+
|
28
|
+
project = "JAXsim"
|
29
|
+
copyright = "2022, Artificial and Mechanical Intelligence"
|
30
|
+
author = "Artificial and Mechanical Intelligence"
|
31
|
+
|
32
|
+
release = f"{__version__}"
|
33
|
+
version = f"main ({__version__})"
|
34
|
+
|
35
|
+
# -- General configuration
|
36
|
+
|
37
|
+
extensions = [
|
38
|
+
"sphinx.ext.duration",
|
39
|
+
"sphinx.ext.doctest",
|
40
|
+
"sphinx.ext.autodoc",
|
41
|
+
"sphinx.ext.autosummary",
|
42
|
+
"sphinx.ext.intersphinx",
|
43
|
+
"sphinx.ext.mathjax",
|
44
|
+
"sphinx.ext.ifconfig",
|
45
|
+
"sphinx.ext.viewcode",
|
46
|
+
"sphinx_rtd_theme",
|
47
|
+
"sphinx.ext.napoleon",
|
48
|
+
"sphinx_autodoc_typehints",
|
49
|
+
"sphinx_multiversion",
|
50
|
+
"enum_tools.autoenum",
|
51
|
+
"myst_nb",
|
52
|
+
"sphinx_gallery.gen_gallery",
|
53
|
+
"sphinxcontrib.collections",
|
54
|
+
"sphinx_design",
|
55
|
+
]
|
56
|
+
|
57
|
+
# -- Options for intersphinx extension
|
58
|
+
|
59
|
+
language = "en"
|
60
|
+
|
61
|
+
html_theme = "sphinx_book_theme"
|
62
|
+
|
63
|
+
templates_path = ["_templates"]
|
64
|
+
|
65
|
+
html_title = f"JAXsim {version}"
|
66
|
+
|
67
|
+
master_doc = "index"
|
68
|
+
|
69
|
+
autodoc_typehints_format = "short"
|
70
|
+
|
71
|
+
autodoc_typehints = "description"
|
72
|
+
|
73
|
+
autosummary_generate = True
|
74
|
+
|
75
|
+
epub_show_urls = "footnote"
|
76
|
+
|
77
|
+
# Enable postponed evaluation of annotations (PEP 563)
|
78
|
+
autodoc_type_aliases = {
|
79
|
+
"jaxsim.typing.PyTree": "jaxsim.typing.PyTree",
|
80
|
+
"jaxsim.typing.Vector": "jaxsim.typing.Vector",
|
81
|
+
"jaxsim.typing.Matrix": "jaxsim.typing.Matrix",
|
82
|
+
"jaxsim.typing.Array": "jaxsim.typing.Array",
|
83
|
+
"jaxsim.typing.Int": "jaxsim.typing.Int",
|
84
|
+
"jaxsim.typing.Bool": "jaxsim.typing.Bool",
|
85
|
+
"jaxsim.typing.Float": "jaxsim.typing.Float",
|
86
|
+
"jaxsim.typing.ScalarLike": "jaxsim.typing.ScalarLike",
|
87
|
+
"jaxsim.typing.ArrayLike": "jaxsim.typing.ArrayLike",
|
88
|
+
"jaxsim.typing.VectorLike": "jaxsim.typing.VectorLike",
|
89
|
+
"jaxsim.typing.MatrixLike": "jaxsim.typing.MatrixLike",
|
90
|
+
"jaxsim.typing.IntLike": "jaxsim.typing.IntLike",
|
91
|
+
"jaxsim.typing.BoolLike": "jaxsim.typing.BoolLike",
|
92
|
+
"jaxsim.typing.FloatLike": "jaxsim.typing.FloatLike",
|
93
|
+
}
|
94
|
+
|
95
|
+
# -- Options for sphinx-collections
|
96
|
+
|
97
|
+
collections = {
|
98
|
+
"examples": {"driver": "copy_folder", "source": "../examples/", "ignore": "assets"}
|
99
|
+
}
|
100
|
+
|
101
|
+
# -- Options for sphinx-gallery ----------------------------------------------
|
102
|
+
|
103
|
+
sphinx_gallery_conf = {
|
104
|
+
"examples_dirs": "../examples",
|
105
|
+
"gallery_dirs": "../generated_examples/",
|
106
|
+
"doc_module": "jaxsim",
|
107
|
+
}
|
108
|
+
|
109
|
+
# -- Options for myst -------------------------------------------------------
|
110
|
+
myst_enable_extensions = [
|
111
|
+
"amsmath",
|
112
|
+
"dollarmath",
|
113
|
+
]
|
114
|
+
nb_execution_mode = "auto"
|
115
|
+
nb_execution_raise_on_error = True
|
116
|
+
nb_render_image_options = {
|
117
|
+
"scale": "60",
|
118
|
+
}
|
119
|
+
nb_execution_timeout = 180
|
120
|
+
|
121
|
+
source_suffix = [".rst", ".md", ".ipynb"]
|
122
|
+
|
123
|
+
# Ignore header warnings
|
124
|
+
suppress_warnings = ["myst.header"]
|
@@ -0,0 +1,46 @@
|
|
1
|
+
.. _collections:
|
2
|
+
|
3
|
+
Example Notebooks
|
4
|
+
=================
|
5
|
+
|
6
|
+
.. toctree::
|
7
|
+
:glob:
|
8
|
+
:hidden:
|
9
|
+
:maxdepth: 1
|
10
|
+
|
11
|
+
_collections/examples/README.md
|
12
|
+
|
13
|
+
.. raw:: html
|
14
|
+
|
15
|
+
<div class="sphx-glr-thumbnails">
|
16
|
+
|
17
|
+
.. raw:: html
|
18
|
+
|
19
|
+
<div class="sphx-glr-thumbcontainer" tooltip="Parallel Simulation.">
|
20
|
+
|
21
|
+
.. only:: html
|
22
|
+
|
23
|
+
:doc:`_collections/examples/Parallel_computing`
|
24
|
+
|
25
|
+
.. raw:: html
|
26
|
+
|
27
|
+
<div class="sphx-glr-thumbnail-title">Parallel Simulation</div>
|
28
|
+
</div>
|
29
|
+
|
30
|
+
|
31
|
+
.. raw:: html
|
32
|
+
|
33
|
+
<div class="sphx-glr-thumbcontainer" tooltip="PD Controller.">
|
34
|
+
|
35
|
+
.. only:: html
|
36
|
+
|
37
|
+
:doc:`_collections/examples/PD_controller`
|
38
|
+
|
39
|
+
.. raw:: html
|
40
|
+
|
41
|
+
<div class="sphx-glr-thumbnail-title">PD Controller</div>
|
42
|
+
</div>
|
43
|
+
|
44
|
+
.. raw:: html
|
45
|
+
|
46
|
+
</div>
|
@@ -21,7 +21,7 @@ Features
|
|
21
21
|
|
22
22
|
.. div:: sd-font-normal
|
23
23
|
|
24
|
-
Physics engine in reduced coordinates implemented with
|
24
|
+
Physics engine in reduced coordinates implemented with JAX_.
|
25
25
|
Compatibility with JIT compilation for increased performance and transparent support to execute logic on CPUs, GPUs, and TPUs.
|
26
26
|
Parallel multi-body simulations on hardware accelerators for significantly increased throughput
|
27
27
|
|
@@ -68,17 +68,24 @@ Features
|
|
68
68
|
|
69
69
|
.. toctree::
|
70
70
|
:hidden:
|
71
|
-
:maxdepth: 1
|
72
|
-
:caption: User Guide
|
73
71
|
|
74
72
|
guide/install
|
75
73
|
|
74
|
+
examples
|
75
|
+
|
76
76
|
.. toctree::
|
77
77
|
:hidden:
|
78
|
-
:maxdepth:
|
78
|
+
:maxdepth: 2
|
79
79
|
:caption: JAXsim API
|
80
80
|
|
81
|
-
modules/
|
81
|
+
modules/api
|
82
|
+
modules/integrators
|
83
|
+
modules/math
|
84
|
+
modules/mujoco
|
85
|
+
modules/parsers
|
86
|
+
modules/rbda
|
87
|
+
modules/typing
|
88
|
+
modules/utils
|
82
89
|
|
83
90
|
Examples
|
84
91
|
--------
|
@@ -90,13 +97,13 @@ Credits
|
|
90
97
|
|
91
98
|
The physics module of JAXsim is based on the theory of the `Rigid Body Dynamics Algorithms <https://link.springer.com/book/10.1007/978-1-4899-7560-7>`_ book by Roy Featherstone.
|
92
99
|
We structured part of our logic following its accompanying `code <http://royfeatherstone.org/spatial/index.html#spatial-software>`_.
|
93
|
-
The physics engine is developed entirely in Python using
|
100
|
+
The physics engine is developed entirely in Python using JAX_.
|
94
101
|
|
95
|
-
The inspiration for developing JAXsim originally stemmed from early versions of
|
102
|
+
The inspiration for developing JAXsim originally stemmed from early versions of Brax_.
|
96
103
|
Here below we summarize the differences between the projects:
|
97
104
|
|
98
|
-
- JAXsim simulates multibody dynamics in reduced coordinates, while brax v1 uses maximal coordinates.
|
99
|
-
- The new v2 APIs of brax (and the new
|
105
|
+
- JAXsim simulates multibody dynamics in reduced coordinates, while :code:`brax v1` uses maximal coordinates.
|
106
|
+
- The new v2 APIs of brax (and the new MJX_) were then implemented in reduced coordinates, following an approach comparable to JAXsim, with major differences in contact handling.
|
100
107
|
- The rigid-body algorithms used in JAXsim allow to efficiently compute quantities based on the Euler-Poincarè
|
101
108
|
formulation of the equations of motion, necessary for model-based robotics research.
|
102
109
|
- JAXsim supports SDF (and, indirectly, URDF) models, assuming the model is described with the
|
@@ -122,3 +129,7 @@ License
|
|
122
129
|
-------
|
123
130
|
|
124
131
|
`BSD3 <https://choosealicense.com/licenses/bsd-3-clause/>`_
|
132
|
+
|
133
|
+
.. _Brax: https://github.com/google/brax
|
134
|
+
.. _MJX: https://mujoco.readthedocs.io/en/3.0.0/mjx.html
|
135
|
+
.. _JAX: https://github.com/google/jax
|
@@ -3,65 +3,93 @@ Functional API
|
|
3
3
|
|
4
4
|
.. currentmodule:: jaxsim.api
|
5
5
|
|
6
|
+
.. autosummary::
|
7
|
+
:toctree: _autosummary
|
8
|
+
|
9
|
+
model
|
10
|
+
data
|
11
|
+
contact
|
12
|
+
kin_dyn_parameters
|
13
|
+
joint
|
14
|
+
link
|
15
|
+
frame
|
16
|
+
com
|
17
|
+
ode_data
|
18
|
+
ode
|
19
|
+
references
|
20
|
+
common
|
21
|
+
|
22
|
+
|
6
23
|
Model
|
7
24
|
~~~~~
|
8
25
|
|
9
26
|
.. automodule:: jaxsim.api.model
|
10
27
|
:members:
|
28
|
+
:no-index:
|
11
29
|
|
12
30
|
Data
|
13
31
|
~~~~
|
14
32
|
|
15
33
|
.. automodule:: jaxsim.api.data
|
16
34
|
:members:
|
35
|
+
:no-index:
|
17
36
|
|
18
37
|
Contact
|
19
38
|
~~~~~~~
|
20
39
|
|
21
40
|
.. automodule:: jaxsim.api.contact
|
22
41
|
:members:
|
42
|
+
:no-index:
|
23
43
|
|
24
44
|
KinDynParameters
|
25
45
|
~~~~~~~~~~~~~~~~
|
26
46
|
|
27
47
|
.. automodule:: jaxsim.api.kin_dyn_parameters
|
28
48
|
:members:
|
49
|
+
:no-index:
|
29
50
|
|
30
51
|
Joint
|
31
52
|
~~~~~
|
32
53
|
|
33
54
|
.. automodule:: jaxsim.api.joint
|
34
55
|
:members:
|
56
|
+
:no-index:
|
35
57
|
|
36
58
|
Link
|
37
59
|
~~~~~
|
38
60
|
.. automodule:: jaxsim.api.link
|
39
61
|
:members:
|
62
|
+
:no-index:
|
40
63
|
|
41
64
|
Frame
|
42
65
|
~~~~~
|
43
66
|
.. automodule:: jaxsim.api.frame
|
44
67
|
:members:
|
68
|
+
:no-index:
|
45
69
|
|
46
70
|
CoM
|
47
71
|
~~~
|
48
72
|
.. automodule:: jaxsim.api.com
|
49
73
|
:members:
|
74
|
+
:no-index:
|
50
75
|
|
51
76
|
ODE Data
|
52
77
|
~~~~~~~~
|
53
78
|
|
54
79
|
.. automodule:: jaxsim.api.ode_data
|
55
80
|
:members:
|
81
|
+
:no-index:
|
56
82
|
|
57
83
|
.. automodule:: jaxsim.api.ode
|
58
84
|
:members:
|
85
|
+
:no-index:
|
59
86
|
|
60
87
|
References
|
61
88
|
~~~~~~~~~~
|
62
89
|
|
63
90
|
.. automodule:: jaxsim.api.references
|
64
91
|
:members:
|
92
|
+
:no-index:
|
65
93
|
|
66
94
|
Common
|
67
95
|
~~~~~~
|
@@ -10,49 +10,29 @@ This module provides a set of algorithms for rigid body dynamics.
|
|
10
10
|
|
11
11
|
aba
|
12
12
|
collidable_points
|
13
|
+
contacts.soft
|
13
14
|
crba
|
14
15
|
forward_kinematics
|
15
16
|
jacobian
|
16
17
|
utils
|
17
18
|
|
18
|
-
Articulated Body Algorithm
|
19
|
-
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
20
|
-
|
21
|
-
.. automodule:: jaxsim.rbda.aba
|
22
|
-
:members:
|
23
|
-
|
24
19
|
Collision Detection
|
25
20
|
~~~~~~~~~~~~~~~~~~~
|
26
21
|
|
27
22
|
.. automodule:: jaxsim.rbda.collidable_points
|
28
23
|
:members:
|
24
|
+
:no-index:
|
29
25
|
|
30
26
|
Contact Models
|
31
27
|
~~~~~~~~~~~~~~
|
32
28
|
|
33
29
|
.. automodule:: jaxsim.rbda.contacts.soft
|
34
30
|
:members:
|
35
|
-
|
36
|
-
Composite Rigid Body Algorithm
|
37
|
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
38
|
-
|
39
|
-
.. automodule:: jaxsim.rbda.crba
|
40
|
-
:members:
|
41
|
-
|
42
|
-
Forward Kinematics
|
43
|
-
~~~~~~~~~~~~~~~~~~~
|
44
|
-
|
45
|
-
.. automodule:: jaxsim.rbda.forward_kinematics
|
46
|
-
:members:
|
47
|
-
|
48
|
-
Jacobians
|
49
|
-
~~~~~~~~~
|
50
|
-
|
51
|
-
.. automodule:: jaxsim.rbda.jacobian
|
52
|
-
:members:
|
31
|
+
:no-index:
|
53
32
|
|
54
33
|
Utilities
|
55
34
|
~~~~~~~~~
|
56
35
|
|
57
36
|
.. automodule:: jaxsim.rbda.utils
|
58
37
|
:members:
|
38
|
+
:no-index:
|
@@ -38,6 +38,7 @@ dependencies:
|
|
38
38
|
- filecache
|
39
39
|
- filelock
|
40
40
|
- jinja2
|
41
|
+
- myst-nb
|
41
42
|
- pip
|
42
43
|
- sphinx
|
43
44
|
- sphinx-autodoc-typehints
|
@@ -45,6 +46,7 @@ dependencies:
|
|
45
46
|
- sphinx-copybutton
|
46
47
|
- sphinx-design
|
47
48
|
- sphinx_fontawesome
|
49
|
+
- sphinx-gallery
|
48
50
|
- sphinx-jinja2-compat
|
49
51
|
- sphinx-multiversion
|
50
52
|
- sphinx_rtd_theme
|
@@ -52,4 +54,7 @@ dependencies:
|
|
52
54
|
# ========================================
|
53
55
|
# Other dependencies for GitHub Codespaces
|
54
56
|
# ========================================
|
57
|
+
- mesalib
|
55
58
|
- ipython
|
59
|
+
- pip:
|
60
|
+
- sphinx-collections # TODO (flferretti): PR to conda-forge
|
@@ -21,6 +21,7 @@
|
|
21
21
|
"source": [
|
22
22
|
"# @title Imports and setup\n",
|
23
23
|
"from IPython.display import clear_output\n",
|
24
|
+
"import os\n",
|
24
25
|
"import sys\n",
|
25
26
|
"\n",
|
26
27
|
"IS_COLAB = \"google.colab\" in sys.modules\n",
|
@@ -34,16 +35,18 @@
|
|
34
35
|
" !apt -qq update\n",
|
35
36
|
" !apt install -qq --no-install-recommends libsdformat13 gz-tools2\n",
|
36
37
|
"\n",
|
37
|
-
" #
|
38
|
+
" # Install dependencies for visualization on Colab and ReadTheDocs\n",
|
39
|
+
" !sudo apt update\n",
|
40
|
+
" !apt install xvfb ffmpeg python-opengl\n",
|
38
41
|
" !{sys.executable} -m pip install pyvirtualdisplay\n",
|
39
|
-
"
|
42
|
+
" clear_output()\n",
|
40
43
|
"\n",
|
41
44
|
" # Start Xvfb and set \"DISPLAY\" environment variable\n",
|
42
45
|
" import pyvirtualdisplay\n",
|
46
|
+
"\n",
|
43
47
|
" d = pyvirtualdisplay.Display()\n",
|
44
48
|
" d.start()\n",
|
45
49
|
"\n",
|
46
|
-
" clear_output()\n",
|
47
50
|
"\n",
|
48
51
|
"import jax\n",
|
49
52
|
"import jax.numpy as jnp\n",
|
@@ -151,19 +154,11 @@
|
|
151
154
|
"outputs": [],
|
152
155
|
"source": [
|
153
156
|
"# @title Set up MuJoCo renderer\n",
|
154
|
-
"\n",
|
155
|
-
"from jaxsim.mujoco import MujocoModelHelper, MujocoVideoRecorder\n",
|
156
|
-
"from jaxsim.mujoco.loaders import UrdfToMjcf\n",
|
157
|
-
"\n",
|
158
|
-
"import os\n",
|
159
157
|
"import subprocess\n",
|
160
158
|
"\n",
|
159
|
+
"os.environ[\"MUJOCO_GL\"] = \"osmesa\"\n",
|
161
160
|
"\n",
|
162
161
|
"if IS_COLAB:\n",
|
163
|
-
" if subprocess.run(\"ffmpeg -version\", shell=True).returncode:\n",
|
164
|
-
" !command -v ffmpeg >/dev/null || (apt update && apt install -y ffmpeg)\n",
|
165
|
-
" clear_output()\n",
|
166
|
-
"\n",
|
167
162
|
" if subprocess.run(\"nvidia-smi\").returncode:\n",
|
168
163
|
" raise RuntimeError(\n",
|
169
164
|
" \"Cannot communicate with GPU. \"\n",
|
@@ -188,7 +183,11 @@
|
|
188
183
|
" \"\"\"\n",
|
189
184
|
" )\n",
|
190
185
|
"\n",
|
191
|
-
"
|
186
|
+
" os.environ[\"MUJOCO_GL\"] = \"egl\"\n",
|
187
|
+
"\n",
|
188
|
+
"\n",
|
189
|
+
"from jaxsim.mujoco import MujocoModelHelper, MujocoVideoRecorder\n",
|
190
|
+
"from jaxsim.mujoco.loaders import UrdfToMjcf\n",
|
192
191
|
"\n",
|
193
192
|
"camera = {\n",
|
194
193
|
" \"name\": \"cartpole_camera\",\n",
|
@@ -209,8 +208,8 @@
|
|
209
208
|
" model=mj_model_helper.model,\n",
|
210
209
|
" data=mj_model_helper.data,\n",
|
211
210
|
" fps=int(1 / 0.010),\n",
|
212
|
-
" width=320 *
|
213
|
-
" height=240 *
|
211
|
+
" width=320 * 2,\n",
|
212
|
+
" height=240 * 2,\n",
|
214
213
|
")"
|
215
214
|
]
|
216
215
|
},
|
@@ -5,11 +5,10 @@ This folder includes a Jupyter Notebook demonstrating the practical usage of JAX
|
|
5
5
|
### Examples
|
6
6
|
|
7
7
|
- [PD_controller](./PD_controller.ipynb) <a target="_blank" href="https://colab.research.google.com/github/ami-iit/jaxsim/blob/main/examples/PD_controller.ipynb">
|
8
|
-
<img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/>
|
9
|
-
|
8
|
+
<img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> - A simple example demonstrating the use of JAXsim to simulate a PD controller with gravity compensation for a 2-DOF cartpole.
|
9
|
+
|
10
10
|
- [Parallel_computing](./Parallel_computing.ipynb) <a target="_blank" href="https://colab.research.google.com/github/ami-iit/jaxsim/blob/main/examples/Parallel_computing.ipynb">
|
11
|
-
<img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/>
|
12
|
-
</a> - An example demonstrating how to simulate vectorized models in parallel using JAXsim.
|
11
|
+
<img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> - An example demonstrating how to simulate vectorized models in parallel using JAXsim.
|
13
12
|
|
14
13
|
> [!TIP]
|
15
14
|
> Stay tuned for more examples!
|
@@ -12,5 +12,5 @@ __version__: str
|
|
12
12
|
__version_tuple__: VERSION_TUPLE
|
13
13
|
version_tuple: VERSION_TUPLE
|
14
14
|
|
15
|
-
__version__ = version = '0.3.1.
|
16
|
-
__version_tuple__ = version_tuple = (0, 3, 1, '
|
15
|
+
__version__ = version = '0.3.1.dev113'
|
16
|
+
__version_tuple__ = version_tuple = (0, 3, 1, 'dev113')
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from collections.abc import Hashable
|
2
|
-
from typing import Any
|
2
|
+
from typing import Any, TypeVar
|
3
3
|
|
4
4
|
import jax
|
5
5
|
|
@@ -17,7 +17,12 @@ Bool = Scalar
|
|
17
17
|
Float = Scalar
|
18
18
|
|
19
19
|
PyTree = (
|
20
|
-
dict[Hashable, "PyTree"]
|
20
|
+
dict[Hashable, TypeVar("PyTree")]
|
21
|
+
| list[TypeVar("PyTree")]
|
22
|
+
| tuple[TypeVar("PyTree")]
|
23
|
+
| None
|
24
|
+
| jax.Array
|
25
|
+
| Any
|
21
26
|
)
|
22
27
|
|
23
28
|
# =======================
|
@@ -18,11 +18,11 @@ setup.py
|
|
18
18
|
.github/workflows/style.yml
|
19
19
|
docs/Makefile
|
20
20
|
docs/conf.py
|
21
|
+
docs/examples.rst
|
21
22
|
docs/index.rst
|
22
23
|
docs/make.bat
|
23
24
|
docs/guide/install.rst
|
24
25
|
docs/modules/api.rst
|
25
|
-
docs/modules/index.rst
|
26
26
|
docs/modules/integrators.rst
|
27
27
|
docs/modules/math.rst
|
28
28
|
docs/modules/mujoco.rst
|
jaxsim-0.3.1.dev94/docs/conf.py
DELETED
@@ -1,74 +0,0 @@
|
|
1
|
-
# Configuration file for the Sphinx documentation builder.
|
2
|
-
import os
|
3
|
-
import sys
|
4
|
-
|
5
|
-
from pkg_resources import get_distribution
|
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
|
-
)
|
12
|
-
|
13
|
-
import jaxsim
|
14
|
-
|
15
|
-
# -- Version information
|
16
|
-
|
17
|
-
sys.path.insert(0, os.path.abspath("."))
|
18
|
-
sys.path.insert(0, os.path.abspath("../"))
|
19
|
-
sys.path.insert(0, os.path.abspath("../../"))
|
20
|
-
|
21
|
-
module_path = os.path.abspath("../src/")
|
22
|
-
sys.path.insert(0, module_path)
|
23
|
-
|
24
|
-
__version__ = get_distribution("jaxsim").version
|
25
|
-
|
26
|
-
# -- Project information
|
27
|
-
|
28
|
-
project = "JAXsim"
|
29
|
-
copyright = "2022, Artificial and Mechanical Intelligence"
|
30
|
-
author = "Artificial and Mechanical Intelligence"
|
31
|
-
|
32
|
-
release = f"{__version__}"
|
33
|
-
version = f"main ({__version__})"
|
34
|
-
|
35
|
-
# -- General configuration
|
36
|
-
|
37
|
-
extensions = [
|
38
|
-
"sphinx.ext.duration",
|
39
|
-
"sphinx.ext.doctest",
|
40
|
-
"sphinx.ext.autodoc",
|
41
|
-
"sphinx.ext.autosummary",
|
42
|
-
"sphinx.ext.intersphinx",
|
43
|
-
"sphinx.ext.mathjax",
|
44
|
-
"sphinx.ext.ifconfig",
|
45
|
-
"sphinx.ext.viewcode",
|
46
|
-
"sphinx_rtd_theme",
|
47
|
-
"sphinx.ext.napoleon",
|
48
|
-
"sphinx_autodoc_typehints",
|
49
|
-
"sphinx_multiversion",
|
50
|
-
"enum_tools.autoenum",
|
51
|
-
"sphinx_design",
|
52
|
-
]
|
53
|
-
|
54
|
-
# -- Options for intersphinx extension
|
55
|
-
|
56
|
-
language = "en"
|
57
|
-
|
58
|
-
html_theme = "sphinx_book_theme"
|
59
|
-
|
60
|
-
templates_path = ["_templates"]
|
61
|
-
|
62
|
-
html_title = f"JAXsim {version}"
|
63
|
-
|
64
|
-
master_doc = "index"
|
65
|
-
|
66
|
-
autodoc_typehints_format = "short"
|
67
|
-
|
68
|
-
exclude_patterns = ["_build"]
|
69
|
-
|
70
|
-
autodoc_typehints = "signature"
|
71
|
-
|
72
|
-
autosummary_generate = False
|
73
|
-
|
74
|
-
epub_show_urls = "footnote"
|
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
|
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
|