jaxsim 0.2.1.dev62__py3-none-any.whl → 0.2.1.dev70__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/__init__.py +11 -1
- jaxsim/api/frame.py +221 -0
- jaxsim/api/model.py +10 -0
- jaxsim/parsers/descriptions/link.py +37 -29
- jaxsim/parsers/descriptions/model.py +49 -54
- jaxsim/parsers/kinematic_graph.py +288 -156
- jaxsim/parsers/rod/parser.py +2 -42
- {jaxsim-0.2.1.dev62.dist-info → jaxsim-0.2.1.dev70.dist-info}/METADATA +1 -1
- {jaxsim-0.2.1.dev62.dist-info → jaxsim-0.2.1.dev70.dist-info}/RECORD +13 -12
- {jaxsim-0.2.1.dev62.dist-info → jaxsim-0.2.1.dev70.dist-info}/LICENSE +0 -0
- {jaxsim-0.2.1.dev62.dist-info → jaxsim-0.2.1.dev70.dist-info}/WHEEL +0 -0
- {jaxsim-0.2.1.dev62.dist-info → jaxsim-0.2.1.dev70.dist-info}/top_level.txt +0 -0
jaxsim/parsers/rod/parser.py
CHANGED
@@ -6,7 +6,6 @@ import jax.numpy as jnp
|
|
6
6
|
import numpy as np
|
7
7
|
import rod
|
8
8
|
|
9
|
-
import jaxsim.utils
|
10
9
|
from jaxsim import logging
|
11
10
|
from jaxsim.math.quaternion import Quaternion
|
12
11
|
from jaxsim.parsers import descriptions, kinematic_graph
|
@@ -371,6 +370,7 @@ def build_model_description(
|
|
371
370
|
name=sdf_data.model_name,
|
372
371
|
links=sdf_data.link_descriptions,
|
373
372
|
joints=sdf_data.joint_descriptions,
|
373
|
+
frames=sdf_data.frame_descriptions,
|
374
374
|
collisions=sdf_data.collision_shapes,
|
375
375
|
fixed_base=sdf_data.fixed_base,
|
376
376
|
base_link_name=sdf_data.base_link_name,
|
@@ -382,47 +382,7 @@ def build_model_description(
|
|
382
382
|
],
|
383
383
|
)
|
384
384
|
|
385
|
-
# Depending on how the model is reduced due to the removal of fixed joints,
|
386
|
-
# there might be frames that are no longer attached to existing links.
|
387
|
-
# We need to change the link to which they are attached to, and update their pose.
|
388
|
-
frames_with_no_parent_link = (
|
389
|
-
f for f in sdf_data.frame_descriptions if f.parent.name not in graph
|
390
|
-
)
|
391
|
-
|
392
|
-
# Build the object to compute forward kinematics.
|
393
|
-
fk = kinematic_graph.KinematicGraphTransforms(graph=graph)
|
394
|
-
|
395
|
-
for frame in frames_with_no_parent_link:
|
396
|
-
# Get the original data of the frame.
|
397
|
-
original_pose = frame.pose
|
398
|
-
original_parent_link = frame.parent.name
|
399
|
-
|
400
|
-
# The parent link, that has been removed, became a frame.
|
401
|
-
assert original_parent_link in graph.frames_dict, (frame, original_parent_link)
|
402
|
-
|
403
|
-
# Get the new parent of the frame corresponding to the removed parent link.
|
404
|
-
new_parent_link = graph.frames_dict[original_parent_link].parent.name
|
405
|
-
logging.debug(f"Frame '{frame.name}' is now attached to '{new_parent_link}'")
|
406
|
-
|
407
|
-
# Get the transform from the new parent link to the original parent link.
|
408
|
-
# The original pose is expressed wrt the original parent link.
|
409
|
-
F_H_P = fk.relative_transform(
|
410
|
-
relative_to=new_parent_link, name=original_parent_link
|
411
|
-
)
|
412
|
-
|
413
|
-
# Update the frame with the updated data.
|
414
|
-
with frame.mutable_context(
|
415
|
-
mutability=jaxsim.utils.Mutability.MUTABLE_NO_VALIDATION
|
416
|
-
):
|
417
|
-
frame.parent = graph.links_dict[new_parent_link]
|
418
|
-
frame.pose = np.array(F_H_P @ original_pose)
|
419
|
-
|
420
|
-
# Include the SDF frames originally stored in the SDF.
|
421
|
-
graph = dataclasses.replace(
|
422
|
-
graph, frames=sdf_data.frame_descriptions + graph.frames
|
423
|
-
)
|
424
|
-
|
425
385
|
# Store the parsed SDF tree as extra info
|
426
|
-
graph = dataclasses.replace(graph,
|
386
|
+
graph = dataclasses.replace(graph, _extra_info={"sdf_model": sdf_data.sdf_model})
|
427
387
|
|
428
388
|
return graph
|
@@ -1,16 +1,17 @@
|
|
1
1
|
jaxsim/__init__.py,sha256=OcrfoYS1DGcmAGqu2AqlCTiUVxcpi-IsVwcr_16x74Q,1789
|
2
|
-
jaxsim/_version.py,sha256=
|
2
|
+
jaxsim/_version.py,sha256=1SWO53mcoalXzzBdA6_IrZRpZQsi_WIK6NLf67IAp-A,426
|
3
3
|
jaxsim/logging.py,sha256=c4zhwBKf9eAYAHVp62kTEllqdsZgh0K-kPKVy8L3elU,1584
|
4
4
|
jaxsim/typing.py,sha256=MeuOCQtLAr-sPkvB_sU8FtwGNRirz1auCwIgRC-QZl8,646
|
5
|
-
jaxsim/api/__init__.py,sha256=
|
5
|
+
jaxsim/api/__init__.py,sha256=8eV22t2S3UwNyCg8karPetG1dmX1VDBXkyv28_FwNQA,210
|
6
6
|
jaxsim/api/com.py,sha256=Qtm_6qpiK4WtDVn6JMUHa8DySgBl9CjgKCybJqZ58Lc,7379
|
7
7
|
jaxsim/api/common.py,sha256=DV-WZG28sikXopNv458aYvpLjmiAtFr5LRscOwXusuk,6640
|
8
8
|
jaxsim/api/contact.py,sha256=Ve4ZOWkLEBRgK3KhtICxKY7YzsxYvc3lO-pPRBjqSnY,8659
|
9
9
|
jaxsim/api/data.py,sha256=GXSCfq4_PsRZuUwsmcl18e2Ppdtu4ykYs0oWih8J2ZI,26775
|
10
|
+
jaxsim/api/frame.py,sha256=68liCmwFDikuP0GQOpo-nF7aVeHJ173e1USSOwskTP0,6246
|
10
11
|
jaxsim/api/joint.py,sha256=-5DogPg4g4mmLckyVIVNjwv-Rxz0IWS7_md9nDlhPWA,4581
|
11
12
|
jaxsim/api/kin_dyn_parameters.py,sha256=9xdHS3lDWSEdV0qAqCVoS6cSMUw17ebPJdbBfq4vjVU,25959
|
12
13
|
jaxsim/api/link.py,sha256=rypTwkMf9HJ5UuAtHRJh0LqqdJWcLKTtTjWcjduEsF0,9842
|
13
|
-
jaxsim/api/model.py,sha256=
|
14
|
+
jaxsim/api/model.py,sha256=7qBsneoc3dWNIsd6INzItGaIWSTgO98TQUZaeyVRrdk,53809
|
14
15
|
jaxsim/api/ode.py,sha256=6l-6i2YHagsQvR8Ac-_fmO6P0hBVT6NkHhwXnrdITEg,9785
|
15
16
|
jaxsim/api/ode_data.py,sha256=dwRFVPJ30XMmdUbPXEu7YxsQ97jZP4L4fd5ZzhrO5Ys,22184
|
16
17
|
jaxsim/api/references.py,sha256=Lvskf17r619KKxwCJP7hAAty2kaXgDXJX1uKqoDIDgo,15483
|
@@ -33,14 +34,14 @@ jaxsim/mujoco/loaders.py,sha256=Tq3b2tq_BulGm9GCM00NQMzcD7B0yKvoyiP94aFbjx4,2102
|
|
33
34
|
jaxsim/mujoco/model.py,sha256=5-4KTbEbU19zjrSuvUVdLo3noWxTvlCNsFIs3rQTNDY,13506
|
34
35
|
jaxsim/mujoco/visualizer.py,sha256=YlteqcCbeB1B6saAHKBz1IJad3N5Rp163reZrzKLAys,5065
|
35
36
|
jaxsim/parsers/__init__.py,sha256=sonYi-bBWAoB04kp1mxT4uIORxjb7SdZ0ukGPmVx98Y,44
|
36
|
-
jaxsim/parsers/kinematic_graph.py,sha256=
|
37
|
+
jaxsim/parsers/kinematic_graph.py,sha256=zFt7x7pPGJar36Azukdi1eI_sa1kMWD3B8kZqcHx6iw,33934
|
37
38
|
jaxsim/parsers/descriptions/__init__.py,sha256=PbIlunVfb59pB5jSX97YVpMAANRZPRkJ0X-hS14rzv4,221
|
38
39
|
jaxsim/parsers/descriptions/collision.py,sha256=HUWwuRgI9KznY29FFw1_zU3bGigDEezrcPOJSxSJGNU,3382
|
39
40
|
jaxsim/parsers/descriptions/joint.py,sha256=r7teUWJyw62WS7qNCB_9FGQD1hvGHBepk-2LCSlmcSc,3052
|
40
|
-
jaxsim/parsers/descriptions/link.py,sha256=
|
41
|
-
jaxsim/parsers/descriptions/model.py,sha256=
|
41
|
+
jaxsim/parsers/descriptions/link.py,sha256=GC-6ZgRZuRVpcRo1sY6YaR8lkCHkR4DvHNs2Ydw_tn4,2887
|
42
|
+
jaxsim/parsers/descriptions/model.py,sha256=uO5xOJtViihVPnSSsmfQJvCh45ANyi9KYAzLOhH0R8g,8993
|
42
43
|
jaxsim/parsers/rod/__init__.py,sha256=G2vqlLajBLUc4gyzXwsEI2Wsi4TMOIF9bLDFeT6KrGU,92
|
43
|
-
jaxsim/parsers/rod/parser.py,sha256=
|
44
|
+
jaxsim/parsers/rod/parser.py,sha256=Q13TOkmpU0SHpgSV8WRYWb290aPNNLsaz4eMlD4Mq5w,13525
|
44
45
|
jaxsim/parsers/rod/utils.py,sha256=9oO4YsQRaR2v700IkNOXRnPpn5i4N8HFfgjPkMLK2mc,5732
|
45
46
|
jaxsim/rbda/__init__.py,sha256=HLwxeU-IxaRpFGUCSQv-LDv20JHTt3Xj7ELiRbRieS8,319
|
46
47
|
jaxsim/rbda/aba.py,sha256=0OoCzHhf1v-qqr1y5PIrD7_mPwAlid0fjXxUrIa5E_s,9118
|
@@ -57,8 +58,8 @@ jaxsim/utils/__init__.py,sha256=tnQq1_CavdfeKaLYt3pmO7Jk4MU2RwwQU_qICkjyoTY,197
|
|
57
58
|
jaxsim/utils/hashless.py,sha256=bFIwKeo9KiWwsY8QM55duEGGQOyyJ4jQyPcuqTLEp5k,297
|
58
59
|
jaxsim/utils/jaxsim_dataclass.py,sha256=h26timZ_XrBL_Q_oymv-DkQd-EcUiHn8QexAaZXBY9c,11396
|
59
60
|
jaxsim/utils/tracing.py,sha256=KDMoyVPlu2NJvFkhtZwq5AkqMMgajt3munvJom-vEjQ,650
|
60
|
-
jaxsim-0.2.1.
|
61
|
-
jaxsim-0.2.1.
|
62
|
-
jaxsim-0.2.1.
|
63
|
-
jaxsim-0.2.1.
|
64
|
-
jaxsim-0.2.1.
|
61
|
+
jaxsim-0.2.1.dev70.dist-info/LICENSE,sha256=eaYdFmdeMbiIoIiPzEK0MjP1S9wtFXjXNR5er49uLR0,1546
|
62
|
+
jaxsim-0.2.1.dev70.dist-info/METADATA,sha256=4AdUyv7PhRO09XpEBc_79fG0MC-msgEQ-CnrstJesqA,9744
|
63
|
+
jaxsim-0.2.1.dev70.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
64
|
+
jaxsim-0.2.1.dev70.dist-info/top_level.txt,sha256=LxGMA8FLtXjQ6oI7N5gd_R_oSUHxpXxUEOfT1xS_ni0,7
|
65
|
+
jaxsim-0.2.1.dev70.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|