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/_version.py +2 -2
- jaxsim/api/com.py +12 -12
- jaxsim/api/contact.py +168 -0
- jaxsim/api/data.py +2 -11
- jaxsim/api/frame.py +156 -1
- jaxsim/api/link.py +10 -7
- jaxsim/api/model.py +68 -24
- jaxsim/api/references.py +107 -1
- jaxsim/integrators/common.py +4 -2
- jaxsim/math/adjoint.py +3 -4
- jaxsim/math/joint_model.py +2 -2
- jaxsim/math/quaternion.py +2 -4
- jaxsim/math/transform.py +1 -3
- jaxsim/mujoco/loaders.py +12 -2
- jaxsim/mujoco/model.py +5 -5
- jaxsim/rbda/aba.py +2 -2
- jaxsim/rbda/collidable_points.py +2 -2
- jaxsim/rbda/contacts/soft.py +1 -1
- jaxsim/rbda/crba.py +24 -12
- jaxsim/rbda/forward_kinematics.py +10 -6
- jaxsim/rbda/jacobian.py +24 -12
- jaxsim/rbda/rnea.py +2 -2
- {jaxsim-0.4.1.dev26.dist-info → jaxsim-0.4.2.dist-info}/METADATA +31 -19
- {jaxsim-0.4.1.dev26.dist-info → jaxsim-0.4.2.dist-info}/RECORD +27 -27
- {jaxsim-0.4.1.dev26.dist-info → jaxsim-0.4.2.dist-info}/WHEEL +1 -1
- {jaxsim-0.4.1.dev26.dist-info → jaxsim-0.4.2.dist-info}/LICENSE +0 -0
- {jaxsim-0.4.1.dev26.dist-info → jaxsim-0.4.2.dist-info}/top_level.txt +0 -0
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,), _ =
|
71
|
-
|
72
|
-
|
73
|
-
|
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, _ =
|
109
|
-
|
110
|
-
|
111
|
-
|
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), _ =
|
188
|
-
|
189
|
-
|
190
|
-
|
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,
|
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
|
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.
|
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
|
64
|
-
Requires-Dist: jaxlib
|
65
|
-
Requires-Dist: jaxlie
|
66
|
-
Requires-Dist: jax-dataclasses
|
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
|
69
|
-
Requires-Dist: typing-extensions
|
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]
|
71
|
+
Requires-Dist: jaxsim[style,testing,viz]; extra == "all"
|
72
72
|
Provides-Extra: style
|
73
|
-
Requires-Dist: black[jupyter]
|
74
|
-
Requires-Dist: isort
|
75
|
-
Requires-Dist: pre-commit
|
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
|
78
|
-
Requires-Dist: pytest
|
79
|
-
Requires-Dist: pytest-icdiff
|
80
|
-
Requires-Dist: robot-descriptions
|
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
|
83
|
-
Requires-Dist: mediapy
|
84
|
-
Requires-Dist: mujoco
|
85
|
-
Requires-Dist: scipy
|
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=
|
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=
|
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=
|
10
|
-
jaxsim/api/data.py,sha256
|
11
|
-
jaxsim/api/frame.py,sha256=
|
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=
|
15
|
-
jaxsim/api/model.py,sha256=
|
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=
|
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=
|
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=
|
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=
|
28
|
-
jaxsim/math/quaternion.py,sha256=
|
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=
|
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=
|
35
|
-
jaxsim/mujoco/model.py,sha256=
|
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=
|
49
|
-
jaxsim/rbda/collidable_points.py,sha256=
|
50
|
-
jaxsim/rbda/crba.py,sha256=
|
51
|
-
jaxsim/rbda/forward_kinematics.py,sha256=
|
52
|
-
jaxsim/rbda/jacobian.py,sha256=
|
53
|
-
jaxsim/rbda/rnea.py,sha256=
|
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=
|
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.
|
65
|
-
jaxsim-0.4.
|
66
|
-
jaxsim-0.4.
|
67
|
-
jaxsim-0.4.
|
68
|
-
jaxsim-0.4.
|
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,,
|
File without changes
|
File without changes
|