jaxsim 0.3.1.dev94__tar.gz → 0.3.1.dev119__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.dev119}/.gitignore +4 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/.readthedocs.yaml +2 -2
- {jaxsim-0.3.1.dev94/src/jaxsim.egg-info → jaxsim-0.3.1.dev119}/PKG-INFO +116 -18
- jaxsim-0.3.1.dev94/PKG-INFO → jaxsim-0.3.1.dev119/README.md +80 -67
- jaxsim-0.3.1.dev119/docs/conf.py +124 -0
- jaxsim-0.3.1.dev119/docs/examples.rst +46 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/index.rst +20 -9
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/modules/api.rst +28 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/modules/rbda.rst +4 -24
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/environment.yml +5 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/examples/PD_controller.ipynb +14 -15
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/examples/README.md +3 -4
- jaxsim-0.3.1.dev119/pyproject.toml +220 -0
- jaxsim-0.3.1.dev119/setup.cfg +4 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/_version.py +2 -2
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/mujoco/model.py +1 -1
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/parsers/kinematic_graph.py +1 -1
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/typing.py +7 -2
- jaxsim-0.3.1.dev119/src/jaxsim.egg-info/PKG-INFO +335 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim.egg-info/SOURCES.txt +1 -3
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim.egg-info/requires.txt +1 -10
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_api_frame.py +1 -1
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_api_link.py +6 -2
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_api_model.py +1 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/utils_idyntree.py +1 -0
- jaxsim-0.3.1.dev94/README.md +0 -171
- 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/pyproject.toml +0 -119
- jaxsim-0.3.1.dev94/setup.cfg +0 -88
- jaxsim-0.3.1.dev94/src/jaxsim.egg-info/not-zip-safe +0 -1
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/.devcontainer/Dockerfile +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/.devcontainer/devcontainer.json +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/.gitattributes +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/.github/CODEOWNERS +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/.github/workflows/ci_cd.yml +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/.github/workflows/read_the_docs.yml +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/.github/workflows/style.yml +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/.pre-commit-config.yaml +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/CONTRIBUTING.md +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/LICENSE +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/Makefile +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/guide/install.rst +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/make.bat +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/modules/integrators.rst +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/modules/math.rst +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/modules/mujoco.rst +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/modules/parsers.rst +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/modules/typing.rst +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/modules/utils.rst +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/examples/.gitattributes +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/examples/.gitignore +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/examples/Parallel_computing.ipynb +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/examples/assets/cartpole.urdf +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/pixi.lock +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/setup.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/com.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/common.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/contact.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/data.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/frame.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/joint.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/kin_dyn_parameters.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/link.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/model.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/ode.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/ode_data.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/references.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/exceptions.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/integrators/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/integrators/common.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/integrators/fixed_step.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/integrators/variable_step.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/logging.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/math/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/math/adjoint.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/math/cross.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/math/inertia.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/math/joint_model.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/math/quaternion.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/math/rotation.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/math/skew.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/math/transform.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/mujoco/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/mujoco/__main__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/mujoco/loaders.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/mujoco/visualizer.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/parsers/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/parsers/descriptions/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/parsers/descriptions/collision.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/parsers/descriptions/joint.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/parsers/descriptions/link.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/parsers/descriptions/model.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/parsers/rod/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/parsers/rod/parser.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/parsers/rod/utils.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/aba.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/collidable_points.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/contacts/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/contacts/common.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/contacts/soft.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/crba.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/forward_kinematics.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/jacobian.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/rnea.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/utils.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/terrain/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/terrain/terrain.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/utils/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/utils/jaxsim_dataclass.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/utils/tracing.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/utils/wrappers.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim.egg-info/dependency_links.txt +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim.egg-info/top_level.txt +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/__init__.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/conftest.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_api_com.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_api_contact.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_api_data.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_api_joint.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_automatic_differentiation.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_contact.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_exceptions.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_pytree.py +0 -0
- {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_simulations.py +0 -0
@@ -1,16 +1,44 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: jaxsim
|
3
|
-
Version: 0.3.1.
|
4
|
-
|
5
|
-
Author: Diego Ferigo
|
6
|
-
|
7
|
-
License: BSD
|
3
|
+
Version: 0.3.1.dev119
|
4
|
+
Summary: A differentiable physics engine and multibody dynamics library for control and robot learning.
|
5
|
+
Author-email: Diego Ferigo <dgferigo@gmail.com>
|
6
|
+
Maintainer-email: Diego Ferigo <dgferigo@gmail.com>, Filippo Luca Ferretti <filippo.ferretti@iit.it>
|
7
|
+
License: BSD 3-Clause License
|
8
|
+
|
9
|
+
Copyright (c) 2022, Artificial and Mechanical Intelligence
|
10
|
+
All rights reserved.
|
11
|
+
|
12
|
+
Redistribution and use in source and binary forms, with or without
|
13
|
+
modification, are permitted provided that the following conditions are met:
|
14
|
+
|
15
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
16
|
+
list of conditions and the following disclaimer.
|
17
|
+
|
18
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
19
|
+
this list of conditions and the following disclaimer in the documentation
|
20
|
+
and/or other materials provided with the distribution.
|
21
|
+
|
22
|
+
3. Neither the name of the copyright holder nor the names of its
|
23
|
+
contributors may be used to endorse or promote products derived from
|
24
|
+
this software without specific prior written permission.
|
25
|
+
|
26
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
27
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
28
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
29
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
30
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
31
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
32
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
33
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
34
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
35
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
36
|
+
|
8
37
|
Project-URL: Changelog, https://github.com/ami-iit/jaxsim/releases
|
9
38
|
Project-URL: Documentation, https://jaxsim.readthedocs.io
|
10
39
|
Project-URL: Source, https://github.com/ami-iit/jaxsim
|
11
40
|
Project-URL: Tracker, https://github.com/ami-iit/jaxsim/issues
|
12
41
|
Keywords: physics,physics engine,jax,rigid body dynamics,featherstone,reinforcement learning,robot,robotics,sdf,urdf
|
13
|
-
Platform: any
|
14
42
|
Classifier: Development Status :: 4 - Beta
|
15
43
|
Classifier: Framework :: Robot Framework
|
16
44
|
Classifier: Intended Audience :: Developers
|
@@ -19,10 +47,10 @@ Classifier: License :: OSI Approved :: BSD License
|
|
19
47
|
Classifier: Operating System :: POSIX :: Linux
|
20
48
|
Classifier: Operating System :: MacOS
|
21
49
|
Classifier: Operating System :: Microsoft
|
50
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
22
51
|
Classifier: Programming Language :: Python :: 3.10
|
23
52
|
Classifier: Programming Language :: Python :: 3.11
|
24
53
|
Classifier: Programming Language :: Python :: 3.12
|
25
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
26
54
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
27
55
|
Classifier: Topic :: Games/Entertainment :: Simulation
|
28
56
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
@@ -53,16 +81,7 @@ Requires-Dist: lxml; extra == "viz"
|
|
53
81
|
Requires-Dist: mediapy; extra == "viz"
|
54
82
|
Requires-Dist: mujoco>=3.0.0; extra == "viz"
|
55
83
|
Provides-Extra: all
|
56
|
-
Requires-Dist:
|
57
|
-
Requires-Dist: isort; extra == "all"
|
58
|
-
Requires-Dist: pre-commit; extra == "all"
|
59
|
-
Requires-Dist: idyntree>=12.2.1; extra == "all"
|
60
|
-
Requires-Dist: pytest>=6.0; extra == "all"
|
61
|
-
Requires-Dist: pytest-icdiff; extra == "all"
|
62
|
-
Requires-Dist: robot-descriptions; extra == "all"
|
63
|
-
Requires-Dist: lxml; extra == "all"
|
64
|
-
Requires-Dist: mediapy; extra == "all"
|
65
|
-
Requires-Dist: mujoco>=3.0.0; extra == "all"
|
84
|
+
Requires-Dist: jaxsim[style,testing,viz]; extra == "all"
|
66
85
|
|
67
86
|
# JaxSim
|
68
87
|
|
@@ -95,6 +114,7 @@ Its design facilitates research and accelerates prototyping in the intersection
|
|
95
114
|
- Provides all the quantities included in the Euler-Poincarè formulation of the equations of motion.
|
96
115
|
- Supports body-fixed, inertial-fixed, and mixed [velocity representations][notation].
|
97
116
|
- Exposes all the necessary quantities to develop controllers in centroidal coordinates.
|
117
|
+
- Supports running open-loop and full closed-loop control architectures on hardware accelerators.
|
98
118
|
|
99
119
|
### JaxSim for robot learning
|
100
120
|
|
@@ -148,7 +168,7 @@ You can install the project using [`pypa/pip`][pip], preferably in a [virtual en
|
|
148
168
|
pip install jaxsim
|
149
169
|
```
|
150
170
|
|
151
|
-
Check [`
|
171
|
+
Check [`pyproject.toml`](pyproject.toml) for the complete list of optional dependencies.
|
152
172
|
You can obtain a full installation using `jaxsim[all]`.
|
153
173
|
|
154
174
|
If you need GPU support, follow the official [installation instructions][jax_gpu] of JAX.
|
@@ -178,6 +198,71 @@ pip install --no-deps -e .
|
|
178
198
|
[venv]: https://docs.python.org/3/tutorial/venv.html
|
179
199
|
[jax_gpu]: https://github.com/google/jax/#installation
|
180
200
|
|
201
|
+
## Overview
|
202
|
+
|
203
|
+
<details>
|
204
|
+
<summary>Structure of the Python package</summary>
|
205
|
+
|
206
|
+
```
|
207
|
+
# tree -L 2 -I "__pycache__" -I "__init__*" -I "__main__*" src/jaxsim
|
208
|
+
|
209
|
+
src/jaxsim
|
210
|
+
|-- api..........................# Package containing the main functional APIs.
|
211
|
+
| |-- com.py...................# |-- APIs for computing quantities related to the center of mass.
|
212
|
+
| |-- common.py................# |-- Common utilities used in the current package.
|
213
|
+
| |-- contact.py...............# |-- APIs for computing quantities related to the collidable points.
|
214
|
+
| |-- data.py..................# |-- Class storing the data of a simulated model.
|
215
|
+
| |-- frame.py.................# |-- APIs for computing quantities related to additional frames.
|
216
|
+
| |-- joint.py.................# |-- APIs for computing quantities related to the joints.
|
217
|
+
| |-- kin_dyn_parameters.py....# |-- Class storing kinematic and dynamic parameters of a model.
|
218
|
+
| |-- link.py..................# |-- APIs for computing quantities related to the links.
|
219
|
+
| |-- model.py.................# |-- Class defining a simulated model and APIs for computing related quantities.
|
220
|
+
| |-- ode.py...................# |-- APIs for computing quantities related to the system dynamics.
|
221
|
+
| |-- ode_data.py..............# |-- Set of classes to store the data of the system dynamics.
|
222
|
+
| `-- references.py............# `-- Helper class to create references (link forces and joint torques).
|
223
|
+
|-- exceptions.py................# Module containing functions to raise exceptions from JIT-compiled functions.
|
224
|
+
|-- integrators..................# Package containing the integrators used to simulate the system dynamics.
|
225
|
+
| |-- common.py................# |-- Common utilities used in the current package.
|
226
|
+
| |-- fixed_step.py............# |-- Fixed-step integrators (explicit Runge-Kutta schemes).
|
227
|
+
| `-- variable_step.py.........# `-- Variable-step integrators (embedded Runge-Kutta schemes).
|
228
|
+
|-- logging.py...................# Module containing logging utilities.
|
229
|
+
|-- math.........................# Package containing mathematical utilities.
|
230
|
+
| |-- adjoint.py...............# |-- APIs for creating and manipulating 6D transformations.
|
231
|
+
| |-- cross.py.................# |-- APIs for computing cross products of 6D quantities.
|
232
|
+
| |-- inertia.py...............# |-- APIs for creating and manipulating 6D inertia matrices.
|
233
|
+
| |-- joint_model.py...........# |-- APIs defining the supported joint model and the corresponding transformations.
|
234
|
+
| |-- quaternion.py............# |-- APIs for creating and manipulating quaternions.
|
235
|
+
| |-- rotation.py..............# |-- APIs for creating and manipulating rotation matrices.
|
236
|
+
| |-- skew.py..................# |-- APIs for creating and manipulating skew-symmetric matrices.
|
237
|
+
| `-- transform.py.............# `-- APIs for creating and manipulating homogeneous transformations.
|
238
|
+
|-- mujoco.......................# Package containing utilities to interact with the Mujoco passive viewer.
|
239
|
+
| |-- loaders.py...............# |-- Utilities for converting JaxSim models to Mujoco models.
|
240
|
+
| |-- model.py.................# |-- Class providing high-level methods to compute quantities using Mujoco.
|
241
|
+
| `-- visualizer.py............# `-- Class that simplifies opening the passive viewer and recording videos.
|
242
|
+
|-- parsers......................# Package containing utilities to parse model descriptions (SDF and URDF models).
|
243
|
+
| |-- descriptions/............# |-- Package containing the intermediate representation of a model description.
|
244
|
+
| |-- kinematic_graph.py.......# |-- Definition of the kinematic graph associated with a parsed model description.
|
245
|
+
| `-- rod/.....................# `-- Package to create the intermediate representation from model descriptions using ROD.
|
246
|
+
|-- rbda.........................# Package containing the low-level rigid body dynamics algorithms.
|
247
|
+
| |-- aba.py...................# |-- The Articulated Body Algorithm.
|
248
|
+
| |-- collidable_points.py.....# |-- Kinematics of collidable points.
|
249
|
+
| |-- contacts/................# |-- Package containing the supported contact models.
|
250
|
+
| |-- crba.py..................# |-- The Composite Rigid Body Algorithm.
|
251
|
+
| |-- forward_kinematics.py....# |-- Forward kinematics of the model.
|
252
|
+
| |-- jacobian.py..............# |-- Full Jacobian and full Jacobian derivative.
|
253
|
+
| |-- rnea.py..................# |-- The Recursive Newton-Euler Algorithm.
|
254
|
+
| `-- utils.py.................# `-- Common utilities used in the current package.
|
255
|
+
|-- terrain......................# Package containing resources to specify the terrain.
|
256
|
+
| `-- terrain.py...............# `-- Classes defining the supported terrains.
|
257
|
+
|-- typing.py....................# Module containing type hints.
|
258
|
+
`-- utils........................# Package of common utilities.
|
259
|
+
|-- jaxsim_dataclass.py......# |-- Utilities to operate on pytree dataclasses.
|
260
|
+
|-- tracing.py...............# |-- Utilities to use when JAX is tracing functions.
|
261
|
+
`-- wrappers.py..............# `-- Utilities to wrap objects for specific use cases on pytree dataclass attributes.
|
262
|
+
```
|
263
|
+
|
264
|
+
</details>
|
265
|
+
|
181
266
|
## Credits
|
182
267
|
|
183
268
|
The RBDAs are based on the theory of the [Rigid Body Dynamics Algorithms][RBDA]
|
@@ -223,6 +308,19 @@ Please read the [contributing guide](./CONTRIBUTING.md) to get started.
|
|
223
308
|
}
|
224
309
|
```
|
225
310
|
|
311
|
+
Theoretical aspects of JaxSim are based on Chapters 7 and 8 of the following Ph.D. thesis:
|
312
|
+
|
313
|
+
```bibtex
|
314
|
+
@phdthesis{ferigo_phd_thesis_2022,
|
315
|
+
title = {Simulation Architectures for Reinforcement Learning applied to Robotics},
|
316
|
+
author = {Diego Ferigo},
|
317
|
+
school = {University of Manchester},
|
318
|
+
type = {PhD Thesis},
|
319
|
+
month = {July},
|
320
|
+
year = {2022},
|
321
|
+
}
|
322
|
+
```
|
323
|
+
|
226
324
|
## People
|
227
325
|
|
228
326
|
| Author | Maintainers |
|
@@ -1,69 +1,3 @@
|
|
1
|
-
Metadata-Version: 2.1
|
2
|
-
Name: jaxsim
|
3
|
-
Version: 0.3.1.dev94
|
4
|
-
Home-page: https://github.com/ami-iit/jaxsim
|
5
|
-
Author: Diego Ferigo
|
6
|
-
Author-email: diego.ferigo@iit.it
|
7
|
-
License: BSD
|
8
|
-
Project-URL: Changelog, https://github.com/ami-iit/jaxsim/releases
|
9
|
-
Project-URL: Documentation, https://jaxsim.readthedocs.io
|
10
|
-
Project-URL: Source, https://github.com/ami-iit/jaxsim
|
11
|
-
Project-URL: Tracker, https://github.com/ami-iit/jaxsim/issues
|
12
|
-
Keywords: physics,physics engine,jax,rigid body dynamics,featherstone,reinforcement learning,robot,robotics,sdf,urdf
|
13
|
-
Platform: any
|
14
|
-
Classifier: Development Status :: 4 - Beta
|
15
|
-
Classifier: Framework :: Robot Framework
|
16
|
-
Classifier: Intended Audience :: Developers
|
17
|
-
Classifier: Intended Audience :: Science/Research
|
18
|
-
Classifier: License :: OSI Approved :: BSD License
|
19
|
-
Classifier: Operating System :: POSIX :: Linux
|
20
|
-
Classifier: Operating System :: MacOS
|
21
|
-
Classifier: Operating System :: Microsoft
|
22
|
-
Classifier: Programming Language :: Python :: 3.10
|
23
|
-
Classifier: Programming Language :: Python :: 3.11
|
24
|
-
Classifier: Programming Language :: Python :: 3.12
|
25
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
26
|
-
Classifier: Programming Language :: Python :: Implementation :: CPython
|
27
|
-
Classifier: Topic :: Games/Entertainment :: Simulation
|
28
|
-
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
29
|
-
Classifier: Topic :: Scientific/Engineering :: Physics
|
30
|
-
Classifier: Topic :: Software Development
|
31
|
-
Requires-Python: >=3.10
|
32
|
-
Description-Content-Type: text/markdown
|
33
|
-
License-File: LICENSE
|
34
|
-
Requires-Dist: coloredlogs
|
35
|
-
Requires-Dist: jax>=0.4.13
|
36
|
-
Requires-Dist: jaxlib>=0.4.13
|
37
|
-
Requires-Dist: jaxlie>=1.3.0
|
38
|
-
Requires-Dist: jax_dataclasses>=1.4.0
|
39
|
-
Requires-Dist: pptree
|
40
|
-
Requires-Dist: rod>=0.3.0
|
41
|
-
Requires-Dist: typing_extensions; python_version < "3.12"
|
42
|
-
Provides-Extra: style
|
43
|
-
Requires-Dist: black[jupyter]~=24.0; extra == "style"
|
44
|
-
Requires-Dist: isort; extra == "style"
|
45
|
-
Requires-Dist: pre-commit; extra == "style"
|
46
|
-
Provides-Extra: testing
|
47
|
-
Requires-Dist: idyntree>=12.2.1; extra == "testing"
|
48
|
-
Requires-Dist: pytest>=6.0; extra == "testing"
|
49
|
-
Requires-Dist: pytest-icdiff; extra == "testing"
|
50
|
-
Requires-Dist: robot-descriptions; extra == "testing"
|
51
|
-
Provides-Extra: viz
|
52
|
-
Requires-Dist: lxml; extra == "viz"
|
53
|
-
Requires-Dist: mediapy; extra == "viz"
|
54
|
-
Requires-Dist: mujoco>=3.0.0; extra == "viz"
|
55
|
-
Provides-Extra: all
|
56
|
-
Requires-Dist: black[jupyter]~=24.0; extra == "all"
|
57
|
-
Requires-Dist: isort; extra == "all"
|
58
|
-
Requires-Dist: pre-commit; extra == "all"
|
59
|
-
Requires-Dist: idyntree>=12.2.1; extra == "all"
|
60
|
-
Requires-Dist: pytest>=6.0; extra == "all"
|
61
|
-
Requires-Dist: pytest-icdiff; extra == "all"
|
62
|
-
Requires-Dist: robot-descriptions; extra == "all"
|
63
|
-
Requires-Dist: lxml; extra == "all"
|
64
|
-
Requires-Dist: mediapy; extra == "all"
|
65
|
-
Requires-Dist: mujoco>=3.0.0; extra == "all"
|
66
|
-
|
67
1
|
# JaxSim
|
68
2
|
|
69
3
|
JaxSim is a **differentiable physics engine** and **multibody dynamics library** designed for applications in control and robot learning, implemented with JAX.
|
@@ -95,6 +29,7 @@ Its design facilitates research and accelerates prototyping in the intersection
|
|
95
29
|
- Provides all the quantities included in the Euler-Poincarè formulation of the equations of motion.
|
96
30
|
- Supports body-fixed, inertial-fixed, and mixed [velocity representations][notation].
|
97
31
|
- Exposes all the necessary quantities to develop controllers in centroidal coordinates.
|
32
|
+
- Supports running open-loop and full closed-loop control architectures on hardware accelerators.
|
98
33
|
|
99
34
|
### JaxSim for robot learning
|
100
35
|
|
@@ -148,7 +83,7 @@ You can install the project using [`pypa/pip`][pip], preferably in a [virtual en
|
|
148
83
|
pip install jaxsim
|
149
84
|
```
|
150
85
|
|
151
|
-
Check [`
|
86
|
+
Check [`pyproject.toml`](pyproject.toml) for the complete list of optional dependencies.
|
152
87
|
You can obtain a full installation using `jaxsim[all]`.
|
153
88
|
|
154
89
|
If you need GPU support, follow the official [installation instructions][jax_gpu] of JAX.
|
@@ -178,6 +113,71 @@ pip install --no-deps -e .
|
|
178
113
|
[venv]: https://docs.python.org/3/tutorial/venv.html
|
179
114
|
[jax_gpu]: https://github.com/google/jax/#installation
|
180
115
|
|
116
|
+
## Overview
|
117
|
+
|
118
|
+
<details>
|
119
|
+
<summary>Structure of the Python package</summary>
|
120
|
+
|
121
|
+
```
|
122
|
+
# tree -L 2 -I "__pycache__" -I "__init__*" -I "__main__*" src/jaxsim
|
123
|
+
|
124
|
+
src/jaxsim
|
125
|
+
|-- api..........................# Package containing the main functional APIs.
|
126
|
+
| |-- com.py...................# |-- APIs for computing quantities related to the center of mass.
|
127
|
+
| |-- common.py................# |-- Common utilities used in the current package.
|
128
|
+
| |-- contact.py...............# |-- APIs for computing quantities related to the collidable points.
|
129
|
+
| |-- data.py..................# |-- Class storing the data of a simulated model.
|
130
|
+
| |-- frame.py.................# |-- APIs for computing quantities related to additional frames.
|
131
|
+
| |-- joint.py.................# |-- APIs for computing quantities related to the joints.
|
132
|
+
| |-- kin_dyn_parameters.py....# |-- Class storing kinematic and dynamic parameters of a model.
|
133
|
+
| |-- link.py..................# |-- APIs for computing quantities related to the links.
|
134
|
+
| |-- model.py.................# |-- Class defining a simulated model and APIs for computing related quantities.
|
135
|
+
| |-- ode.py...................# |-- APIs for computing quantities related to the system dynamics.
|
136
|
+
| |-- ode_data.py..............# |-- Set of classes to store the data of the system dynamics.
|
137
|
+
| `-- references.py............# `-- Helper class to create references (link forces and joint torques).
|
138
|
+
|-- exceptions.py................# Module containing functions to raise exceptions from JIT-compiled functions.
|
139
|
+
|-- integrators..................# Package containing the integrators used to simulate the system dynamics.
|
140
|
+
| |-- common.py................# |-- Common utilities used in the current package.
|
141
|
+
| |-- fixed_step.py............# |-- Fixed-step integrators (explicit Runge-Kutta schemes).
|
142
|
+
| `-- variable_step.py.........# `-- Variable-step integrators (embedded Runge-Kutta schemes).
|
143
|
+
|-- logging.py...................# Module containing logging utilities.
|
144
|
+
|-- math.........................# Package containing mathematical utilities.
|
145
|
+
| |-- adjoint.py...............# |-- APIs for creating and manipulating 6D transformations.
|
146
|
+
| |-- cross.py.................# |-- APIs for computing cross products of 6D quantities.
|
147
|
+
| |-- inertia.py...............# |-- APIs for creating and manipulating 6D inertia matrices.
|
148
|
+
| |-- joint_model.py...........# |-- APIs defining the supported joint model and the corresponding transformations.
|
149
|
+
| |-- quaternion.py............# |-- APIs for creating and manipulating quaternions.
|
150
|
+
| |-- rotation.py..............# |-- APIs for creating and manipulating rotation matrices.
|
151
|
+
| |-- skew.py..................# |-- APIs for creating and manipulating skew-symmetric matrices.
|
152
|
+
| `-- transform.py.............# `-- APIs for creating and manipulating homogeneous transformations.
|
153
|
+
|-- mujoco.......................# Package containing utilities to interact with the Mujoco passive viewer.
|
154
|
+
| |-- loaders.py...............# |-- Utilities for converting JaxSim models to Mujoco models.
|
155
|
+
| |-- model.py.................# |-- Class providing high-level methods to compute quantities using Mujoco.
|
156
|
+
| `-- visualizer.py............# `-- Class that simplifies opening the passive viewer and recording videos.
|
157
|
+
|-- parsers......................# Package containing utilities to parse model descriptions (SDF and URDF models).
|
158
|
+
| |-- descriptions/............# |-- Package containing the intermediate representation of a model description.
|
159
|
+
| |-- kinematic_graph.py.......# |-- Definition of the kinematic graph associated with a parsed model description.
|
160
|
+
| `-- rod/.....................# `-- Package to create the intermediate representation from model descriptions using ROD.
|
161
|
+
|-- rbda.........................# Package containing the low-level rigid body dynamics algorithms.
|
162
|
+
| |-- aba.py...................# |-- The Articulated Body Algorithm.
|
163
|
+
| |-- collidable_points.py.....# |-- Kinematics of collidable points.
|
164
|
+
| |-- contacts/................# |-- Package containing the supported contact models.
|
165
|
+
| |-- crba.py..................# |-- The Composite Rigid Body Algorithm.
|
166
|
+
| |-- forward_kinematics.py....# |-- Forward kinematics of the model.
|
167
|
+
| |-- jacobian.py..............# |-- Full Jacobian and full Jacobian derivative.
|
168
|
+
| |-- rnea.py..................# |-- The Recursive Newton-Euler Algorithm.
|
169
|
+
| `-- utils.py.................# `-- Common utilities used in the current package.
|
170
|
+
|-- terrain......................# Package containing resources to specify the terrain.
|
171
|
+
| `-- terrain.py...............# `-- Classes defining the supported terrains.
|
172
|
+
|-- typing.py....................# Module containing type hints.
|
173
|
+
`-- utils........................# Package of common utilities.
|
174
|
+
|-- jaxsim_dataclass.py......# |-- Utilities to operate on pytree dataclasses.
|
175
|
+
|-- tracing.py...............# |-- Utilities to use when JAX is tracing functions.
|
176
|
+
`-- wrappers.py..............# `-- Utilities to wrap objects for specific use cases on pytree dataclass attributes.
|
177
|
+
```
|
178
|
+
|
179
|
+
</details>
|
180
|
+
|
181
181
|
## Credits
|
182
182
|
|
183
183
|
The RBDAs are based on the theory of the [Rigid Body Dynamics Algorithms][RBDA]
|
@@ -223,6 +223,19 @@ Please read the [contributing guide](./CONTRIBUTING.md) to get started.
|
|
223
223
|
}
|
224
224
|
```
|
225
225
|
|
226
|
+
Theoretical aspects of JaxSim are based on Chapters 7 and 8 of the following Ph.D. thesis:
|
227
|
+
|
228
|
+
```bibtex
|
229
|
+
@phdthesis{ferigo_phd_thesis_2022,
|
230
|
+
title = {Simulation Architectures for Reinforcement Learning applied to Robotics},
|
231
|
+
author = {Diego Ferigo},
|
232
|
+
school = {University of Manchester},
|
233
|
+
type = {PhD Thesis},
|
234
|
+
month = {July},
|
235
|
+
year = {2022},
|
236
|
+
}
|
237
|
+
```
|
238
|
+
|
226
239
|
## People
|
227
240
|
|
228
241
|
| Author | Maintainers |
|
@@ -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
|