jaxsim 0.4.1.dev26__py3-none-any.whl → 0.4.2__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/rbda/jacobian.py CHANGED
@@ -67,10 +67,14 @@ def jacobian(
67
67
 
68
68
  return (i_X_0,), None
69
69
 
70
- (i_X_0,), _ = jax.lax.scan(
71
- f=propagate_kinematics,
72
- init=propagate_kinematics_carry,
73
- xs=np.arange(start=1, stop=model.number_of_links()),
70
+ (i_X_0,), _ = (
71
+ jax.lax.scan(
72
+ f=propagate_kinematics,
73
+ init=propagate_kinematics_carry,
74
+ xs=np.arange(start=1, stop=model.number_of_links()),
75
+ )
76
+ if model.number_of_links() > 1
77
+ else [(i_X_0,), None]
74
78
  )
75
79
 
76
80
  # ============================
@@ -105,10 +109,14 @@ def jacobian(
105
109
 
106
110
  return J, None
107
111
 
108
- L_J_WL_B, _ = jax.lax.scan(
109
- f=compute_jacobian,
110
- init=J,
111
- xs=np.arange(start=1, stop=model.number_of_links()),
112
+ L_J_WL_B, _ = (
113
+ jax.lax.scan(
114
+ f=compute_jacobian,
115
+ init=J,
116
+ xs=np.arange(start=1, stop=model.number_of_links()),
117
+ )
118
+ if model.number_of_links() > 1
119
+ else [J, None]
112
120
  )
113
121
 
114
122
  return L_J_WL_B
@@ -184,10 +192,14 @@ def jacobian_full_doubly_left(
184
192
 
185
193
  return (B_X_i, J), None
186
194
 
187
- (B_X_i, J), _ = jax.lax.scan(
188
- f=compute_full_jacobian,
189
- init=compute_full_jacobian_carry,
190
- xs=np.arange(start=1, stop=model.number_of_links()),
195
+ (B_X_i, J), _ = (
196
+ jax.lax.scan(
197
+ f=compute_full_jacobian,
198
+ init=compute_full_jacobian_carry,
199
+ xs=np.arange(start=1, stop=model.number_of_links()),
200
+ )
201
+ if model.number_of_links() > 1
202
+ else [(B_X_i, J), None]
191
203
  )
192
204
 
193
205
  # Convert adjoints to SE(3) transforms.
jaxsim/rbda/rnea.py CHANGED
@@ -6,7 +6,7 @@ import jaxlie
6
6
 
7
7
  import jaxsim.api as js
8
8
  import jaxsim.typing as jtp
9
- from jaxsim.math import Adjoint, Cross, Quaternion, StandardGravity
9
+ from jaxsim.math import Adjoint, Cross, StandardGravity
10
10
 
11
11
  from . import utils
12
12
 
@@ -82,7 +82,7 @@ def rnea(
82
82
 
83
83
  # Compute the base transform.
84
84
  W_H_B = jaxlie.SE3.from_rotation_and_translation(
85
- rotation=jaxlie.SO3.from_quaternion_xyzw(xyzw=Quaternion.to_xyzw(wxyz=W_Q_B)),
85
+ rotation=jaxlie.SO3(wxyz=W_Q_B),
86
86
  translation=W_p_B,
87
87
  )
88
88
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jaxsim
3
- Version: 0.4.1.dev26
3
+ Version: 0.4.2
4
4
  Summary: A differentiable physics engine and multibody dynamics library for control and robot learning.
5
5
  Author-email: Diego Ferigo <dgferigo@gmail.com>
6
6
  Maintainer-email: Diego Ferigo <dgferigo@gmail.com>, Filippo Luca Ferretti <filippo.ferretti@iit.it>
@@ -60,29 +60,29 @@ Requires-Python: >=3.10
60
60
  Description-Content-Type: text/markdown
61
61
  License-File: LICENSE
62
62
  Requires-Dist: coloredlogs
63
- Requires-Dist: jax >=0.4.13
64
- Requires-Dist: jaxlib >=0.4.13
65
- Requires-Dist: jaxlie >=1.3.0
66
- Requires-Dist: jax-dataclasses >=1.4.0
63
+ Requires-Dist: jax>=0.4.13
64
+ Requires-Dist: jaxlib>=0.4.13
65
+ Requires-Dist: jaxlie>=1.3.0
66
+ Requires-Dist: jax-dataclasses>=1.4.0
67
67
  Requires-Dist: pptree
68
- Requires-Dist: rod >=0.3.0
69
- Requires-Dist: typing-extensions ; python_version < "3.12"
68
+ Requires-Dist: rod>=0.3.0
69
+ Requires-Dist: typing-extensions; python_version < "3.12"
70
70
  Provides-Extra: all
71
- Requires-Dist: jaxsim[style,testing,viz] ; extra == 'all'
71
+ Requires-Dist: jaxsim[style,testing,viz]; extra == "all"
72
72
  Provides-Extra: style
73
- Requires-Dist: black[jupyter] ~=24.0 ; extra == 'style'
74
- Requires-Dist: isort ; extra == 'style'
75
- Requires-Dist: pre-commit ; extra == 'style'
73
+ Requires-Dist: black[jupyter]~=24.0; extra == "style"
74
+ Requires-Dist: isort; extra == "style"
75
+ Requires-Dist: pre-commit; extra == "style"
76
76
  Provides-Extra: testing
77
- Requires-Dist: idyntree >=12.2.1 ; extra == 'testing'
78
- Requires-Dist: pytest >=6.0 ; extra == 'testing'
79
- Requires-Dist: pytest-icdiff ; extra == 'testing'
80
- Requires-Dist: robot-descriptions ; extra == 'testing'
77
+ Requires-Dist: idyntree>=12.2.1; extra == "testing"
78
+ Requires-Dist: pytest>=6.0; extra == "testing"
79
+ Requires-Dist: pytest-icdiff; extra == "testing"
80
+ Requires-Dist: robot-descriptions; extra == "testing"
81
81
  Provides-Extra: viz
82
- Requires-Dist: lxml ; extra == 'viz'
83
- Requires-Dist: mediapy ; extra == 'viz'
84
- Requires-Dist: mujoco >=3.0.0 ; extra == 'viz'
85
- Requires-Dist: scipy >=1.14.0 ; extra == 'viz'
82
+ Requires-Dist: lxml; extra == "viz"
83
+ Requires-Dist: mediapy; extra == "viz"
84
+ Requires-Dist: mujoco>=3.0.0; extra == "viz"
85
+ Requires-Dist: scipy>=1.14.0; extra == "viz"
86
86
 
87
87
  # JaxSim
88
88
 
@@ -90,6 +90,18 @@ JaxSim is a **differentiable physics engine** and **multibody dynamics library**
90
90
 
91
91
  Its design facilitates research and accelerates prototyping in the intersection of robotics and artificial intelligence.
92
92
 
93
+ <div align="center">
94
+ <br/>
95
+ <table>
96
+ <tr>
97
+ <th><img src="https://github.com/user-attachments/assets/115b1c1c-6ae5-4c59-92e0-1be13ba954db" width="250"></th>
98
+ <th><img src="https://github.com/user-attachments/assets/f9661fae-9a85-41dd-9a58-218758ec8c9c" width="250"></th>
99
+ <th><img src="https://github.com/user-attachments/assets/ae8adadf-3bca-47b8-97ca-3a9273633d60" width="250"></th>
100
+ </tr>
101
+ </table>
102
+ <br/>
103
+ </div>
104
+
93
105
  ## Features
94
106
 
95
107
  - Physics engine in reduced coordinates supporting fixed-base and floating-base robots.
@@ -1,38 +1,38 @@
1
1
  jaxsim/__init__.py,sha256=ixsS4dYMPex2wOUUp_rkPnwrPhYzkRh1xO_YuMj3Cr4,2626
2
- jaxsim/_version.py,sha256=XHImy4n87oPsekUjMVW4OEA98IRwpuieyG_-X7GiPcs,426
2
+ jaxsim/_version.py,sha256=McNH31cVzymi4jtwoAHwNiyVAdDW8uY0z3IcBioCvQI,411
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
6
6
  jaxsim/api/__init__.py,sha256=8eV22t2S3UwNyCg8karPetG1dmX1VDBXkyv28_FwNQA,210
7
- jaxsim/api/com.py,sha256=6TnYCvjmsJ2KLuw3NtZb0pay7ZwGKe9MKphYeQdjpQ0,13474
7
+ jaxsim/api/com.py,sha256=m-p3EJDhpnMTlXKplfbZE_aH9NqX_VyLlAE3vUhc6l4,13642
8
8
  jaxsim/api/common.py,sha256=Ubi6uAw3o6qbdU0TFGzUyHg98EnoMzrnlihrvrs95Sk,6653
9
- jaxsim/api/contact.py,sha256=EcOx_T94gZT3igtebmW9FJDpZYPEf-RwKfFN18JjOWM,13364
10
- jaxsim/api/data.py,sha256=-xx4b11thP8oJEXB4xtgrh3RTY2-BxrT38b7s_GrzjA,27420
11
- jaxsim/api/frame.py,sha256=l_7hRla8V7wGYIA57Lw7mDNDrBvIH3yowKL4YkFz6N4,7214
9
+ jaxsim/api/contact.py,sha256=yBLfjT01BxEZ1lnC0WBSJZwCXK9DnW_DBJxmo9arStE,19855
10
+ jaxsim/api/data.py,sha256=T6m7-NteWrm-K3491Yo76xvlWtFCKqTzEE7Ughcasi8,27197
11
+ jaxsim/api/frame.py,sha256=Lsx9OIao_UZOQ6ibB_rramCRiYQbQv-M8C1QdoQdgcA,12902
12
12
  jaxsim/api/joint.py,sha256=Pvg_It2iYA-jAQ2nOlFZxwmITiozO_f46G13BdQtHQ0,5106
13
13
  jaxsim/api/kin_dyn_parameters.py,sha256=CcfSg5Mc8qb1mZeMQ4AK_ffZIsK5yOl7tu397pFhcDA,29369
14
- jaxsim/api/link.py,sha256=hn7fbxaebHeXnvwEG9jZiWwzRcfdS8m-18LVsIG3S24,18479
15
- jaxsim/api/model.py,sha256=5FV1oMfa8c5OoC-lxy1KP8hf6Inn6sZvEp9htcjo1J0,61500
14
+ jaxsim/api/link.py,sha256=GlnY7LMne-siFyg9J49IZGhiPQzS9Uk6rzQ0jI8cD_E,18622
15
+ jaxsim/api/model.py,sha256=EdSjpKXd4N72wYjg5o0wGKFxjVMyrXg6LnlPEi3JqnU,63094
16
16
  jaxsim/api/ode.py,sha256=NnLTBvpaT4kXnbjAghXIzLv9DTMJ8bele2iOlUQDv3Q,11028
17
17
  jaxsim/api/ode_data.py,sha256=9YZX-SK_KJtoIqG-zYWZsQInb2NA_LtxDn-jtLqm_3U,19759
18
- jaxsim/api/references.py,sha256=UA6kSQVBoq-bXSo99EOELf-_MD5MTy2zS0GtG3wQ410,16618
18
+ jaxsim/api/references.py,sha256=XOVKuQXRmjPoP-T5JWGSbqIGX5DzOkeGafqRpj0ZQEM,20771
19
19
  jaxsim/integrators/__init__.py,sha256=hxvOD-VK_mmd6v31wtC-nb28AYve1gLuZCNLV9wS-Kg,103
20
- jaxsim/integrators/common.py,sha256=iwFykYZxdchqJcmcx8MFWEVijS5Hx9wCNKLKAJdF4gE,20103
20
+ jaxsim/integrators/common.py,sha256=GqiyKTrAozuR6RuvVWdPF7locZQAXSEDY2AjTKpFGYM,20149
21
21
  jaxsim/integrators/fixed_step.py,sha256=KpjRd6hHtapxDoo6D1kyDrVDSHnke2TepI5grFH7_bM,2693
22
22
  jaxsim/integrators/variable_step.py,sha256=0FCmAZIFnhvQxVbAzNfZgCWN1yMRTGVdBm9UwwaXI1o,21280
23
23
  jaxsim/math/__init__.py,sha256=8oPITEoGwgRcOeG8KxtqxPQ8b5uku1HNRMokpCoi9Tc,352
24
- jaxsim/math/adjoint.py,sha256=DT21izjVW497GRrgNfx8tv0ZeWW5QncWMGMhI0acUNw,4425
24
+ jaxsim/math/adjoint.py,sha256=o1FCipkGwPtMbN2gFNIyUV8ADF3TX5fxElpTEXK0bIs,4377
25
25
  jaxsim/math/cross.py,sha256=U7yEx_l75mSy5g6O-jsjBztApvxC3WaV4MpkS5tThu4,1330
26
26
  jaxsim/math/inertia.py,sha256=UAB7ym4gXFanejcs_ovZMpteHCc6poWYmt-mLmd5hhk,1640
27
- jaxsim/math/joint_model.py,sha256=cVD9G8tBCsYtXC-r2BkVYO8Jg_km_BhJr7dezh3x6Rw,9995
28
- jaxsim/math/quaternion.py,sha256=A05m7syBTIpl3SrsB7F76NNbExtUyJAdvHMavjNManI,4863
27
+ jaxsim/math/joint_model.py,sha256=VZ3hRCgb0gsyI1wN1UdHkmaRMBxjAYQK1i_3WIvkdUA,9994
28
+ jaxsim/math/quaternion.py,sha256=_WA7W3iv7px83sWO1V1n0-J78hqAlO4SL1-jofE-UZ4,4754
29
29
  jaxsim/math/rotation.py,sha256=Z90daUjGpuNEVLfWB3SVtM9EtwAIaneVj9A9UpWXqhA,2182
30
30
  jaxsim/math/skew.py,sha256=oOGSSR8PUGROl6IJFlrmu6K3gPH-u16hUPfKIkcVv9o,1177
31
- jaxsim/math/transform.py,sha256=_5kSnfkS6_vxvjxdw50KeXMjvW8e1OGaumUlk1iGJgc,2969
31
+ jaxsim/math/transform.py,sha256=KXzQgOnCfAtbXCwxhplpJ3F0JT3oEyeLVby1_uRAryQ,2892
32
32
  jaxsim/mujoco/__init__.py,sha256=Zo5GAlN1DYKvX8s1hu1j6HntKIbBMLB9Puv9ouaNAZ8,158
33
33
  jaxsim/mujoco/__main__.py,sha256=GBmB7J-zj75ZnFyuAAmpSOpbxi_HhHhWJeot3ljGDJY,5291
34
- jaxsim/mujoco/loaders.py,sha256=He55jmkC5wQpMhEIDHOXXbqgWNjJ2fx16wOTStp_3PA,25111
35
- jaxsim/mujoco/model.py,sha256=EwUPg9BsNv1B7TdDfjZCpC022lDR16AyIAajPJGH7NU,16357
34
+ jaxsim/mujoco/loaders.py,sha256=t9kWyvTJoMChBs8WMaZEPH1Y_smp_A9go6XT6rHcPEU,25301
35
+ jaxsim/mujoco/model.py,sha256=ZqqHBDnB-y8ueHydD0Ujbg4ALyLUpB_6r_9r0sENQvI,16359
36
36
  jaxsim/mujoco/visualizer.py,sha256=XvMzGSHM-xnOSYl1Vk6bPe6j6ylQmJeLOgxHgL6I1nw,6966
37
37
  jaxsim/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
38
  jaxsim/parsers/kinematic_graph.py,sha256=88d0EmndVJWdcyFJsW25S78Z8F04cUt08RQMyoil1Xw,34734
@@ -45,24 +45,24 @@ jaxsim/parsers/rod/__init__.py,sha256=G2vqlLajBLUc4gyzXwsEI2Wsi4TMOIF9bLDFeT6KrG
45
45
  jaxsim/parsers/rod/parser.py,sha256=B8fnnL3LFNfCNTTFhX_OeQZhTlRgwPFCNKcUVL94-rY,13528
46
46
  jaxsim/parsers/rod/utils.py,sha256=5DsF3OeePZGidOJ5GiFSZx-51uIdnFvMW9EK6SgOW6Q,5698
47
47
  jaxsim/rbda/__init__.py,sha256=H7DhXpxkPOi9lpUvg31IMHFfRafke1UoJLc5GQIdyhA,387
48
- jaxsim/rbda/aba.py,sha256=IyeeCOF5nD-WSkRT5nMYtLuC0RWiyJQHlcyWDjQqliQ,9041
49
- jaxsim/rbda/collidable_points.py,sha256=fQBZonoiLSSgHNpsa4mwe5wsA1j7jb2b_0D9z_oqKWo,4941
50
- jaxsim/rbda/crba.py,sha256=NhtZO48OUKKor7ddY7mB7h7a6idrmOyf0Vy4p7UCCgI,4724
51
- jaxsim/rbda/forward_kinematics.py,sha256=OEQYovnLKsWphUKhigmWa_384LwZW3Csp0MKufw4e1M,3415
52
- jaxsim/rbda/jacobian.py,sha256=I6mrlkk7Cpq3CE7k_tajOHCbT6vf2pW6vMS0TKNCnng,10725
53
- jaxsim/rbda/rnea.py,sha256=UrhcL93fp3pAKlGxOPS6X47L0ferH50bcSMzG55t4zY,7626
48
+ jaxsim/rbda/aba.py,sha256=w7ciyxB0IsmueatT0C7PcBQEl9dyiH9oqJgIi3xeTUE,8983
49
+ jaxsim/rbda/collidable_points.py,sha256=Rmf1DhflhOTYh9mDalv0agS0CGSbmfoOybwP2KzKuJ0,4883
50
+ jaxsim/rbda/crba.py,sha256=zJSiHKRvNU98z2tT9prrWR4VU9wIZQWFwEut7mua6as,5044
51
+ jaxsim/rbda/forward_kinematics.py,sha256=2GmEoWsrioVl_SAbKRKfhOLz57pY4aR81PKRdulqStA,3458
52
+ jaxsim/rbda/jacobian.py,sha256=p0EV_8cLzLVV-93VKznT7VPuRj8W7h7rQWkPlWJXfCA,11023
53
+ jaxsim/rbda/rnea.py,sha256=LGXD6s3NigaVy4-WxoROjnbKLZcUoyFmS9UNu_4ldjo,7568
54
54
  jaxsim/rbda/utils.py,sha256=eeT21Y4DiiyhrdF0lUE_VvRuwru5-rR7yOlOlWzCCWE,5381
55
55
  jaxsim/rbda/contacts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
56
  jaxsim/rbda/contacts/common.py,sha256=iMKLP30Qft9eGTiHo2iY-UoACJjg1JphA9_pW8wRdjc,2410
57
- jaxsim/rbda/contacts/soft.py,sha256=3cDynim_tIgcbzRuqpHN82v4ELlxxK6lR-PG0haSK7Q,15660
57
+ jaxsim/rbda/contacts/soft.py,sha256=_wvb5iZDjGcVg6rNQelN4LZN7qSC2NIp0HdKvZmlGfk,15647
58
58
  jaxsim/terrain/__init__.py,sha256=f7lVX-iNpH_wkkjef9Qpjh19TTAUOQw76EiLYJDVizc,78
59
59
  jaxsim/terrain/terrain.py,sha256=ctyNANIFSM3tZmamprjaEDcWgUSP0oNJbmT1zw9RjPs,4565
60
60
  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.4.1.dev26.dist-info/LICENSE,sha256=eaYdFmdeMbiIoIiPzEK0MjP1S9wtFXjXNR5er49uLR0,1546
65
- jaxsim-0.4.1.dev26.dist-info/METADATA,sha256=27JNrQu22xRXb76bTZRngzB8hH0VQ57yUj7ucIAMePU,16826
66
- jaxsim-0.4.1.dev26.dist-info/WHEEL,sha256=Z4pYXqR_rTB7OWNDYFOm1qRk0RX6GFP2o8LgvP453Hk,91
67
- jaxsim-0.4.1.dev26.dist-info/top_level.txt,sha256=LxGMA8FLtXjQ6oI7N5gd_R_oSUHxpXxUEOfT1xS_ni0,7
68
- jaxsim-0.4.1.dev26.dist-info/RECORD,,
64
+ jaxsim-0.4.2.dist-info/LICENSE,sha256=eaYdFmdeMbiIoIiPzEK0MjP1S9wtFXjXNR5er49uLR0,1546
65
+ jaxsim-0.4.2.dist-info/METADATA,sha256=7k6l7OO00B6czQi7O1MPCpjcbL1qxeSwy19khRT4FXc,17221
66
+ jaxsim-0.4.2.dist-info/WHEEL,sha256=nCVcAvsfA9TDtwGwhYaRrlPhTLV9m-Ga6mdyDtuwK18,91
67
+ jaxsim-0.4.2.dist-info/top_level.txt,sha256=LxGMA8FLtXjQ6oI7N5gd_R_oSUHxpXxUEOfT1xS_ni0,7
68
+ jaxsim-0.4.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.3.0)
2
+ Generator: setuptools (73.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5