jaxsim 0.4.3.dev88__py3-none-any.whl → 0.4.3.dev90__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/rbda/crba.py +29 -29
- {jaxsim-0.4.3.dev88.dist-info → jaxsim-0.4.3.dev90.dist-info}/METADATA +1 -1
- {jaxsim-0.4.3.dev88.dist-info → jaxsim-0.4.3.dev90.dist-info}/RECORD +7 -7
- {jaxsim-0.4.3.dev88.dist-info → jaxsim-0.4.3.dev90.dist-info}/LICENSE +0 -0
- {jaxsim-0.4.3.dev88.dist-info → jaxsim-0.4.3.dev90.dist-info}/WHEEL +0 -0
- {jaxsim-0.4.3.dev88.dist-info → jaxsim-0.4.3.dev90.dist-info}/top_level.txt +0 -0
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.4.3.
|
16
|
-
__version_tuple__ = version_tuple = (0, 4, 3, '
|
15
|
+
__version__ = version = '0.4.3.dev90'
|
16
|
+
__version_tuple__ = version_tuple = (0, 4, 3, 'dev90')
|
jaxsim/rbda/crba.py
CHANGED
@@ -94,48 +94,48 @@ def crba(model: js.model.JaxSimModel, *, joint_positions: jtp.Vector) -> jtp.Mat
|
|
94
94
|
|
95
95
|
j = i
|
96
96
|
|
97
|
-
|
98
|
-
|
97
|
+
FakeWhileCarry = tuple[jtp.Int, jtp.Vector, jtp.Matrix]
|
98
|
+
fake_while_carry = (j, Fi, M)
|
99
99
|
|
100
|
-
|
101
|
-
|
100
|
+
# This internal for loop implements the while loop of the CRBA algorithm
|
101
|
+
# to compute off-diagonal blocks of the mass matrix M.
|
102
|
+
# In pseudocode it is implemented as a while loop. However, in order to enable
|
103
|
+
# applying reverse-mode AD, we implement it as a nested for loop with a fixed
|
104
|
+
# number of iterations and a branching model to skip for loop iterations.
|
105
|
+
def fake_while_loop(
|
106
|
+
carry: FakeWhileCarry, i: jtp.Int
|
107
|
+
) -> tuple[FakeWhileCarry, None]:
|
102
108
|
|
103
|
-
|
104
|
-
j = λ[j]
|
105
|
-
jj = j - 1
|
109
|
+
def compute(carry: FakeWhileCarry) -> FakeWhileCarry:
|
106
110
|
|
107
|
-
|
111
|
+
j, Fi, M = carry
|
108
112
|
|
109
|
-
|
110
|
-
|
113
|
+
Fi = i_X_λi[j].T @ Fi
|
114
|
+
j = λ[j]
|
111
115
|
|
112
|
-
|
116
|
+
M_ij = Fi.T @ S[j]
|
113
117
|
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
j,
|
119
|
-
out = jax.lax.cond(
|
120
|
-
pred=(λ[j] > 0),
|
121
|
-
true_fun=while_loop_body,
|
122
|
-
false_fun=lambda carry: carry,
|
123
|
-
operand=carry,
|
124
|
-
)
|
125
|
-
return out, None
|
118
|
+
jj = j - 1
|
119
|
+
M = M.at[ii + 6, jj + 6].set(M_ij.squeeze())
|
120
|
+
M = M.at[jj + 6, ii + 6].set(M_ij.squeeze())
|
121
|
+
|
122
|
+
return j, Fi, M
|
126
123
|
|
127
124
|
j, _, _ = carry
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
125
|
+
|
126
|
+
j, Fi, M = jax.lax.cond(
|
127
|
+
pred=jnp.logical_and(i == λ[j], λ[j] > 0),
|
128
|
+
true_fun=compute,
|
129
|
+
false_fun=lambda carry: carry,
|
132
130
|
operand=carry,
|
133
131
|
)
|
134
132
|
|
133
|
+
return (j, Fi, M), None
|
134
|
+
|
135
135
|
(j, Fi, M), _ = (
|
136
136
|
jax.lax.scan(
|
137
|
-
f=
|
138
|
-
init=
|
137
|
+
f=fake_while_loop,
|
138
|
+
init=fake_while_carry,
|
139
139
|
xs=jnp.flip(jnp.arange(start=1, stop=model.number_of_links())),
|
140
140
|
)
|
141
141
|
if model.number_of_links() > 1
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: jaxsim
|
3
|
-
Version: 0.4.3.
|
3
|
+
Version: 0.4.3.dev90
|
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>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
jaxsim/__init__.py,sha256=bSbpggIz5aG6QuGZLa0V2EfHjAOeucMxi-vIYxzLmN8,2788
|
2
|
-
jaxsim/_version.py,sha256=
|
2
|
+
jaxsim/_version.py,sha256=fuaYWGJzXhRRB1_d7MJOsOZB0tLvj9VmOhi-3TpDllA,426
|
3
3
|
jaxsim/exceptions.py,sha256=8_h8iqL8DgNR754dR8SZiQ7361GR5V1sUk3ZuZCHw1Q,2069
|
4
4
|
jaxsim/logging.py,sha256=STI-D_upXZYX-ZezLrlJJ0UlD5YspST0vZ_DcIwkzO4,1553
|
5
5
|
jaxsim/typing.py,sha256=2HXy9hgazPXjofi1vLQ09ZubPtgVmg80U9NKmZ6NYiI,761
|
@@ -47,7 +47,7 @@ jaxsim/parsers/rod/utils.py,sha256=5DsF3OeePZGidOJ5GiFSZx-51uIdnFvMW9EK6SgOW6Q,5
|
|
47
47
|
jaxsim/rbda/__init__.py,sha256=H7DhXpxkPOi9lpUvg31IMHFfRafke1UoJLc5GQIdyhA,387
|
48
48
|
jaxsim/rbda/aba.py,sha256=w7ciyxB0IsmueatT0C7PcBQEl9dyiH9oqJgIi3xeTUE,8983
|
49
49
|
jaxsim/rbda/collidable_points.py,sha256=Rmf1DhflhOTYh9mDalv0agS0CGSbmfoOybwP2KzKuJ0,4883
|
50
|
-
jaxsim/rbda/crba.py,sha256=
|
50
|
+
jaxsim/rbda/crba.py,sha256=bXkXESnVbv-lxhU1Y_i0rViEcQA4z2t2_jHwdVj5CBo,5049
|
51
51
|
jaxsim/rbda/forward_kinematics.py,sha256=2GmEoWsrioVl_SAbKRKfhOLz57pY4aR81PKRdulqStA,3458
|
52
52
|
jaxsim/rbda/jacobian.py,sha256=p0EV_8cLzLVV-93VKznT7VPuRj8W7h7rQWkPlWJXfCA,11023
|
53
53
|
jaxsim/rbda/rnea.py,sha256=CLfqs9XFVaD-hvkLABshDAfdw5bm_AMV3UVAQ_IvURQ,7542
|
@@ -63,8 +63,8 @@ jaxsim/utils/__init__.py,sha256=Y5zyoRevl3EMVQadhZ4EtSwTEkDt2vcnFoRhPJjKTZ0,215
|
|
63
63
|
jaxsim/utils/jaxsim_dataclass.py,sha256=TGmTQV2Lq7Q-2nLoAEaeNtkPa_qj0IKkdBm4COj46Os,11312
|
64
64
|
jaxsim/utils/tracing.py,sha256=KDMoyVPlu2NJvFkhtZwq5AkqMMgajt3munvJom-vEjQ,650
|
65
65
|
jaxsim/utils/wrappers.py,sha256=Fh82ZcaFi5fUnByyFLnmumaobsu1hJIvFdopUVzJ1ps,4052
|
66
|
-
jaxsim-0.4.3.
|
67
|
-
jaxsim-0.4.3.
|
68
|
-
jaxsim-0.4.3.
|
69
|
-
jaxsim-0.4.3.
|
70
|
-
jaxsim-0.4.3.
|
66
|
+
jaxsim-0.4.3.dev90.dist-info/LICENSE,sha256=eaYdFmdeMbiIoIiPzEK0MjP1S9wtFXjXNR5er49uLR0,1546
|
67
|
+
jaxsim-0.4.3.dev90.dist-info/METADATA,sha256=Xtzcvy1beDYPhSFFx_xtt-5fgvGj8c-eeS-_Jv45xfE,17276
|
68
|
+
jaxsim-0.4.3.dev90.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
69
|
+
jaxsim-0.4.3.dev90.dist-info/top_level.txt,sha256=LxGMA8FLtXjQ6oI7N5gd_R_oSUHxpXxUEOfT1xS_ni0,7
|
70
|
+
jaxsim-0.4.3.dev90.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|