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.
Files changed (119) hide show
  1. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/.github/workflows/ci_cd.yml +1 -1
  2. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/LICENSE +1 -1
  3. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/PKG-INFO +1 -1
  4. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/docs/conf.py +8 -17
  5. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/docs/guide/install.rst +2 -2
  6. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/docs/index.rst +58 -44
  7. jaxsim-0.2.dev423/docs/modules/api.rst +68 -0
  8. jaxsim-0.2.dev423/docs/modules/index.rst +19 -0
  9. jaxsim-0.2.dev423/docs/modules/integrators.rst +23 -0
  10. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/docs/modules/math.rst +2 -14
  11. jaxsim-0.2.dev423/docs/modules/mujoco.rst +27 -0
  12. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/docs/modules/parsers.rst +1 -1
  13. jaxsim-0.2.dev423/docs/modules/rbda.rst +59 -0
  14. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/docs/modules/typing.rst +2 -2
  15. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/docs/modules/utils.rst +1 -4
  16. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/environment.yml +3 -0
  17. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/examples/.gitattributes +0 -1
  18. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/examples/.gitignore +0 -1
  19. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/examples/README.md +3 -3
  20. jaxsim-0.2.dev423/examples/assets/cartpole.urdf +83 -0
  21. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/pyproject.toml +1 -0
  22. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/_version.py +2 -2
  23. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/model.py +2 -2
  24. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/mujoco/loaders.py +63 -6
  25. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/mujoco/model.py +38 -19
  26. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/mujoco/visualizer.py +25 -9
  27. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim.egg-info/PKG-INFO +1 -1
  28. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim.egg-info/SOURCES.txt +5 -3
  29. jaxsim-0.2.dev400/docs/modules/high_level.rst +0 -30
  30. jaxsim-0.2.dev400/docs/modules/physics.rst +0 -40
  31. jaxsim-0.2.dev400/docs/modules/simulation.rst +0 -34
  32. jaxsim-0.2.dev400/examples/assets/cartpole.urdf +0 -83
  33. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/.devcontainer/Dockerfile +0 -0
  34. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/.devcontainer/devcontainer.json +0 -0
  35. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/.github/CODEOWNERS +0 -0
  36. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/.github/workflows/read_the_docs.yml +0 -0
  37. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/.github/workflows/style.yml +0 -0
  38. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/.gitignore +0 -0
  39. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/.pre-commit-config.yaml +0 -0
  40. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/.readthedocs.yaml +0 -0
  41. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/CONTRIBUTING.md +0 -0
  42. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/README.md +0 -0
  43. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/docs/Makefile +0 -0
  44. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/docs/make.bat +0 -0
  45. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/examples/PD_controller.ipynb +0 -0
  46. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/examples/Parallel_computing.ipynb +0 -0
  47. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/examples/pixi.lock +0 -0
  48. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/examples/pixi.toml +0 -0
  49. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/setup.cfg +0 -0
  50. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/setup.py +0 -0
  51. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/__init__.py +0 -0
  52. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/__init__.py +0 -0
  53. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/com.py +0 -0
  54. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/common.py +0 -0
  55. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/contact.py +0 -0
  56. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/data.py +0 -0
  57. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/joint.py +0 -0
  58. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/kin_dyn_parameters.py +0 -0
  59. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/link.py +0 -0
  60. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/ode.py +0 -0
  61. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/ode_data.py +0 -0
  62. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/api/references.py +0 -0
  63. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/integrators/__init__.py +0 -0
  64. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/integrators/common.py +0 -0
  65. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/integrators/fixed_step.py +0 -0
  66. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/integrators/variable_step.py +0 -0
  67. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/logging.py +0 -0
  68. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/math/__init__.py +0 -0
  69. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/math/adjoint.py +0 -0
  70. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/math/cross.py +0 -0
  71. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/math/inertia.py +0 -0
  72. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/math/joint_model.py +0 -0
  73. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/math/quaternion.py +0 -0
  74. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/math/rotation.py +0 -0
  75. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/math/skew.py +0 -0
  76. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/math/transform.py +0 -0
  77. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/mujoco/__init__.py +0 -0
  78. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/mujoco/__main__.py +0 -0
  79. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/parsers/__init__.py +0 -0
  80. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/parsers/descriptions/__init__.py +0 -0
  81. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/parsers/descriptions/collision.py +0 -0
  82. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/parsers/descriptions/joint.py +0 -0
  83. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/parsers/descriptions/link.py +0 -0
  84. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/parsers/descriptions/model.py +0 -0
  85. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/parsers/kinematic_graph.py +0 -0
  86. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/parsers/rod/__init__.py +0 -0
  87. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/parsers/rod/parser.py +0 -0
  88. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/parsers/rod/utils.py +0 -0
  89. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/rbda/__init__.py +0 -0
  90. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/rbda/aba.py +0 -0
  91. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/rbda/collidable_points.py +0 -0
  92. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/rbda/crba.py +0 -0
  93. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/rbda/forward_kinematics.py +0 -0
  94. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/rbda/jacobian.py +0 -0
  95. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/rbda/rnea.py +0 -0
  96. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/rbda/soft_contacts.py +0 -0
  97. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/rbda/utils.py +0 -0
  98. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/terrain/__init__.py +0 -0
  99. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/terrain/terrain.py +0 -0
  100. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/typing.py +0 -0
  101. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/utils/__init__.py +0 -0
  102. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/utils/hashless.py +0 -0
  103. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/utils/jaxsim_dataclass.py +0 -0
  104. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim/utils/tracing.py +0 -0
  105. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim.egg-info/dependency_links.txt +0 -0
  106. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim.egg-info/not-zip-safe +0 -0
  107. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim.egg-info/requires.txt +0 -0
  108. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/src/jaxsim.egg-info/top_level.txt +0 -0
  109. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/__init__.py +0 -0
  110. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/conftest.py +0 -0
  111. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/test_api_com.py +0 -0
  112. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/test_api_data.py +0 -0
  113. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/test_api_joint.py +0 -0
  114. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/test_api_link.py +0 -0
  115. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/test_api_model.py +0 -0
  116. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/test_automatic_differentiation.py +0 -0
  117. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/test_pytree.py +0 -0
  118. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/test_simulations.py +0 -0
  119. {jaxsim-0.2.dev400 → jaxsim-0.2.dev423}/tests/utils_idyntree.py +0 -0
@@ -92,7 +92,7 @@ jobs:
92
92
  - name: Document installed pip packages
93
93
  shell: bash
94
94
  run: pip list --verbose
95
-
95
+
96
96
  - name: Import the package
97
97
  run: python -c "import jaxsim"
98
98
 
@@ -1,6 +1,6 @@
1
1
  BSD 3-Clause License
2
2
 
3
- Copyright (c) 2022, Artificial and Mechanical Intelligence
3
+ Copyright (c) 2022, Artificial and Mechanical Intelligence
4
4
  All rights reserved.
5
5
 
6
6
  Redistribution and use in source and binary forms, with or without
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jaxsim
3
- Version: 0.2.dev400
3
+ Version: 0.2.dev423
4
4
  Summary: A physics engine in reduced coordinates implemented with JAX.
5
5
  Home-page: https://github.com/ami-iit/jaxsim
6
6
  Author: Diego Ferigo
@@ -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
- def _add_annotations_import(path):
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 = "sphinx_rtd_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
- - Physics engine in reduced coordinates implemented with `JAX <https://github.com/google/jax/>`_ in Python.
16
- - JIT compilation of Python code for increased performance.
17
- - Transparent support to execute logic on CPUs, GPUs, and TPUs.
18
- - Parallel multi-body simulations on hardware accelerators for significantly increased throughput.
19
- - Support for SDF models (and, upon conversion, URDF models).
20
- - Collision detection between bodies and uneven ground surface.
21
- - Soft contacts model supporting full friction cone and sticking / slipping transition.
22
- - Complete support for inertial properties of rigid bodies.
23
- - Revolute, prismatic, and fixed joints support.
24
- - Integrators: forward Euler, semi-implicit Euler, Runge-Kutta 4.
25
- - High-level classes for object-oriented programming.
26
- - High-level classes to compute multi-body dynamics quantities from simulation state.
27
- - High-level classes wrapping the low-level functional RBDAs with support of `multiple velocities representations <https://research.tue.nl/en/publications/multibody-dynamics-notation-version-2>`_.
28
- - Default validation of JAX pytrees to prevent JIT re-compilations.
29
- - Preliminary support for automatic differentiation of RBDAs.
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: 2
78
+ :maxdepth: 1
41
79
  :caption: JAXsim API
42
80
 
43
- modules/high_level
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,19 @@
1
+ Public API
2
+ ==========
3
+
4
+ .. _modules:
5
+
6
+ Modules
7
+ -------
8
+
9
+ .. toctree::
10
+ :maxdepth: 1
11
+
12
+ api
13
+ integrators
14
+ math
15
+ mujoco
16
+ parsers
17
+ rbda
18
+ typing
19
+ utils
@@ -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.conv
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:
@@ -1,4 +1,4 @@
1
- Parsers
1
+ Parsers
2
2
  =======
3
3
 
4
4
  .. automodule:: jaxsim.parsers.descriptions.collision
@@ -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:
@@ -1,4 +1,4 @@
1
- Typing
1
+ Typing
2
2
  ======
3
3
 
4
4
  .. currentmodule:: jaxsim.typing
@@ -14,4 +14,4 @@ Typing
14
14
  IntJax
15
15
  ArrayJax
16
16
  VectorJax
17
- MatrixJax
17
+ MatrixJax
@@ -1,7 +1,4 @@
1
- .. _utils:
2
-
3
-
4
- Utils
1
+ Utils
5
2
  =====
6
3
 
7
4
  .. automodule:: jaxsim.utils
@@ -38,8 +38,11 @@ dependencies:
38
38
  - sphinx
39
39
  - sphinx-autodoc-typehints
40
40
  - sphinx-copybutton
41
+ - sphinx-design
41
42
  - sphinx_fontawesome
42
43
  - sphinx-jinja2-compat
43
44
  - sphinx-multiversion
44
45
  - sphinx_rtd_theme
46
+ - sphinx-book-theme
45
47
  - sphinx-toolbox
48
+ - pip
@@ -1,3 +1,2 @@
1
1
  # GitHub syntax highlighting
2
2
  pixi.lock linguist-language=YAML
3
-
@@ -1,3 +1,2 @@
1
1
  # pixi environments
2
2
  .pixi
3
-
@@ -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>
@@ -66,3 +66,4 @@ select = [
66
66
  "**/{tests,docs,tools}/*" = ["E402"]
67
67
  "**/{tests}/*" = ["B007"]
68
68
  "__init__.py" = ["F401"]
69
+ "docs/conf.py" = ["F401"]
@@ -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.dev400'
16
- __version_tuple__ = version_tuple = (0, 2, 'dev400')
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(\\mathbf{q}, \boldsymbol{\nu})`
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: