Bending stiffness for curved shells in flex.

PiperOrigin-RevId: 796361841
Change-Id: I105ea235fe2a8e1bcbde67276d77fa92eed214a1
This commit is contained in:
Alessio Quaglino
2025-08-18 04:12:34 -07:00
committed by Copybara-Service
parent 972ffd7b90
commit b66175eba6
18 changed files with 488 additions and 250 deletions
+1 -1
View File
@@ -609,7 +609,7 @@ def put_model(mjm: mujoco.MjModel) -> types.Model:
flex_elemedge=wp.array(mjm.flex_elemedge, dtype=int),
flexedge_length0=wp.array(mjm.flexedge_length0, dtype=float),
flex_stiffness=wp.array(mjm.flex_stiffness.flatten(), dtype=float),
flex_bending=wp.array(mjm.flex_bending, dtype=wp.mat44f),
flex_bending=wp.array(mjm.flex_bending.flatten(), dtype=float),
flex_damping=wp.array(mjm.flex_damping, dtype=float),
mesh_vertadr=wp.array(mjm.mesh_vertadr, dtype=int),
mesh_vertnum=wp.array(mjm.mesh_vertnum, dtype=int),
+2 -2
View File
@@ -454,7 +454,7 @@ def _flex_bending(
flex_vertbodyid: wp.array(dtype=int),
flex_edge: wp.array(dtype=wp.vec2i),
flex_edgeflap: wp.array(dtype=wp.vec2i),
flex_bending: wp.array(dtype=wp.mat44f),
flex_bending: wp.array(dtype=float),
# Data in:
flexvert_xpos_in: wp.array2d(dtype=wp.vec3),
# Data out:
@@ -481,7 +481,7 @@ def _flex_bending(
for i in range(nvert):
for j in range(nvert):
for x in range(3):
force[i, x] -= flex_bending[edgeid][i, j] * flexvert_xpos_in[worldid, v[j]][x]
force[i, x] -= flex_bending[17*edgeid + 4*i + j] * flexvert_xpos_in[worldid, v[j]][x]
for i in range(nvert):
bodyid = flex_vertbodyid[flex_vertadr[f] + v[i]]
+1 -1
View File
@@ -1199,7 +1199,7 @@ class Model:
flex_elemedge: wp.array(dtype=int)
flexedge_length0: wp.array(dtype=float)
flex_stiffness: wp.array(dtype=float)
flex_bending: wp.array(dtype=wp.mat44f)
flex_bending: wp.array(dtype=float)
flex_damping: wp.array(dtype=float)
mesh_vertadr: wp.array(dtype=int)
mesh_vertnum: wp.array(dtype=int)
+2 -2
View File
@@ -124,7 +124,7 @@ def _forward_shim(
eq_solref: wp.array2d(dtype=wp.vec2),
eq_ten_adr: wp.array(dtype=int),
eq_wld_adr: wp.array(dtype=int),
flex_bending: wp.array(dtype=wp.mat44f),
flex_bending: wp.array(dtype=float),
flex_damping: wp.array(dtype=float),
flex_dim: wp.array(dtype=int),
flex_edge: wp.array(dtype=wp.vec2i),
@@ -2148,7 +2148,7 @@ def _step_shim(
eq_solref: wp.array2d(dtype=wp.vec2),
eq_ten_adr: wp.array(dtype=int),
eq_wld_adr: wp.array(dtype=int),
flex_bending: wp.array(dtype=wp.mat44f),
flex_bending: wp.array(dtype=float),
flex_damping: wp.array(dtype=float),
flex_dim: wp.array(dtype=int),
flex_edge: wp.array(dtype=wp.vec2i),
+1 -1
View File
@@ -737,7 +737,7 @@ _NDIM = {
'eq_type': 1,
'eq_wld_adr': 1,
'exclude_signature': 1,
'flex_bending': 3,
'flex_bending': 1,
'flex_damping': 1,
'flex_dim': 1,
'flex_edge': 2,