jaxsim 0.3.1.dev113__py3-none-any.whl → 0.3.1.dev119__py3-none-any.whl

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/_version.py CHANGED
@@ -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.dev113'
16
- __version_tuple__ = version_tuple = (0, 3, 1, 'dev113')
15
+ __version__ = version = '0.3.1.dev119'
16
+ __version_tuple__ = version_tuple = (0, 3, 1, 'dev119')
jaxsim/mujoco/model.py CHANGED
@@ -378,7 +378,7 @@ class MujocoModelHelper:
378
378
  for i in range(self.joint_dofs(joint_name=joint_name))
379
379
  ]
380
380
  )
381
- for idx, joint_name in zip(idxs, joint_names)
381
+ for idx, joint_name in zip(idxs, joint_names, strict=True)
382
382
  ]
383
383
  ).squeeze()
384
384
  )
@@ -797,7 +797,7 @@ class KinematicGraphTransforms:
797
797
  self._transform_cache.clear()
798
798
 
799
799
  # Update initial joint positions.
800
- for joint_name, position in zip(joint_names, s):
800
+ for joint_name, position in zip(joint_names, s, strict=True):
801
801
  self._initial_joint_positions[joint_name] = position
802
802
 
803
803
  def transform(self, name: str) -> npt.NDArray:
@@ -1,16 +1,44 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jaxsim
3
- Version: 0.3.1.dev113
4
- Home-page: https://github.com/ami-iit/jaxsim
5
- Author: Diego Ferigo
6
- Author-email: diego.ferigo@iit.it
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
@@ -40,16 +68,7 @@ Requires-Dist: pptree
40
68
  Requires-Dist: rod >=0.3.0
41
69
  Requires-Dist: typing-extensions ; python_version < "3.12"
42
70
  Provides-Extra: all
43
- Requires-Dist: black[jupyter] ~=24.0 ; extra == 'all'
44
- Requires-Dist: isort ; extra == 'all'
45
- Requires-Dist: pre-commit ; extra == 'all'
46
- Requires-Dist: idyntree >=12.2.1 ; extra == 'all'
47
- Requires-Dist: pytest >=6.0 ; extra == 'all'
48
- Requires-Dist: pytest-icdiff ; extra == 'all'
49
- Requires-Dist: robot-descriptions ; extra == 'all'
50
- Requires-Dist: lxml ; extra == 'all'
51
- Requires-Dist: mediapy ; extra == 'all'
52
- Requires-Dist: mujoco >=3.0.0 ; extra == 'all'
71
+ Requires-Dist: jaxsim[style,testing,viz] ; extra == 'all'
53
72
  Provides-Extra: style
54
73
  Requires-Dist: black[jupyter] ~=24.0 ; extra == 'style'
55
74
  Requires-Dist: isort ; extra == 'style'
@@ -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 [`setup.cfg`](setup.cfg) for the complete list of optional dependencies.
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,5 +1,5 @@
1
1
  jaxsim/__init__.py,sha256=ixsS4dYMPex2wOUUp_rkPnwrPhYzkRh1xO_YuMj3Cr4,2626
2
- jaxsim/_version.py,sha256=tjJY2_qcaED1KU6yngvUVAWrjBslzHlTRL3ozVencbc,428
2
+ jaxsim/_version.py,sha256=j2HF_9we4OIeiTV6c9pfx2fcYQxYY0FbyJMv-SD8iXw,428
3
3
  jaxsim/exceptions.py,sha256=8_h8iqL8DgNR754dR8SZiQ7361GR5V1sUk3ZuZCHw1Q,2069
4
4
  jaxsim/logging.py,sha256=c4zhwBKf9eAYAHVp62kTEllqdsZgh0K-kPKVy8L3elU,1584
5
5
  jaxsim/typing.py,sha256=IbFx3UkEXi-cm7UBqMPi58rJAFV_HbZ9E_K4JwfNvVM,753
@@ -32,10 +32,10 @@ jaxsim/math/transform.py,sha256=_5kSnfkS6_vxvjxdw50KeXMjvW8e1OGaumUlk1iGJgc,2969
32
32
  jaxsim/mujoco/__init__.py,sha256=Zo5GAlN1DYKvX8s1hu1j6HntKIbBMLB9Puv9ouaNAZ8,158
33
33
  jaxsim/mujoco/__main__.py,sha256=GBmB7J-zj75ZnFyuAAmpSOpbxi_HhHhWJeot3ljGDJY,5291
34
34
  jaxsim/mujoco/loaders.py,sha256=FuGPPg9Iq2xLZSqIFzlY7YfPR5uy9rbGlb0cU4gio5A,21000
35
- jaxsim/mujoco/model.py,sha256=ajpACdDJu06iiawgijAb0GDCczmkJbTXBF6klVNoaGw,13498
35
+ jaxsim/mujoco/model.py,sha256=mObFS77EY97sTFdlFrl69_gf9S_0FHO0W3_hevxQNws,13511
36
36
  jaxsim/mujoco/visualizer.py,sha256=9jfKXkuoaW7Ppo_0m8dogD3SxH13K2strFNDVLtG3hA,5154
37
37
  jaxsim/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
- jaxsim/parsers/kinematic_graph.py,sha256=WNY83TaSRGDsTUCOiIlyKtPmzHpQm3XNx6AOOJzGj50,34721
38
+ jaxsim/parsers/kinematic_graph.py,sha256=88d0EmndVJWdcyFJsW25S78Z8F04cUt08RQMyoil1Xw,34734
39
39
  jaxsim/parsers/descriptions/__init__.py,sha256=PbIlunVfb59pB5jSX97YVpMAANRZPRkJ0X-hS14rzv4,221
40
40
  jaxsim/parsers/descriptions/collision.py,sha256=BQeIG-TKi4SVny23w6riDrQ5itC6VRwEMBX6HgAXHxA,3973
41
41
  jaxsim/parsers/descriptions/joint.py,sha256=VSb6C0FBBKMqwrHBKfc-Bbn4rl_J0RzUxMQlhIEvOPM,5185
@@ -61,8 +61,8 @@ jaxsim/utils/__init__.py,sha256=Y5zyoRevl3EMVQadhZ4EtSwTEkDt2vcnFoRhPJjKTZ0,215
61
61
  jaxsim/utils/jaxsim_dataclass.py,sha256=fLl1tY3DDb3lpIhG6BPqA5W34hM84oFzL-5cuz8k-68,11379
62
62
  jaxsim/utils/tracing.py,sha256=KDMoyVPlu2NJvFkhtZwq5AkqMMgajt3munvJom-vEjQ,650
63
63
  jaxsim/utils/wrappers.py,sha256=GOJQCJc5zwzoEGZB62wnWWGvUUQlXvDxz_A2Q-hFv7c,4027
64
- jaxsim-0.3.1.dev113.dist-info/LICENSE,sha256=eaYdFmdeMbiIoIiPzEK0MjP1S9wtFXjXNR5er49uLR0,1546
65
- jaxsim-0.3.1.dev113.dist-info/METADATA,sha256=Zr7gDlYMyDqazKvfmYRB17xTXmk7D5uhEf01tzuGuU8,9740
66
- jaxsim-0.3.1.dev113.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
67
- jaxsim-0.3.1.dev113.dist-info/top_level.txt,sha256=LxGMA8FLtXjQ6oI7N5gd_R_oSUHxpXxUEOfT1xS_ni0,7
68
- jaxsim-0.3.1.dev113.dist-info/RECORD,,
64
+ jaxsim-0.3.1.dev119.dist-info/LICENSE,sha256=eaYdFmdeMbiIoIiPzEK0MjP1S9wtFXjXNR5er49uLR0,1546
65
+ jaxsim-0.3.1.dev119.dist-info/METADATA,sha256=Ex4UOkMizAqtmNxRTdEc3V6JNSaHRLDqTqNfY6Kn-KU,16780
66
+ jaxsim-0.3.1.dev119.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
67
+ jaxsim-0.3.1.dev119.dist-info/top_level.txt,sha256=LxGMA8FLtXjQ6oI7N5gd_R_oSUHxpXxUEOfT1xS_ni0,7
68
+ jaxsim-0.3.1.dev119.dist-info/RECORD,,