Deformable solid plugin for particles.

Using coordinate-free formula equivalent to linear finite elements.

PiperOrigin-RevId: 491317615
Change-Id: I096b9a56075bbb630f64bfffac8a8d66457e5e2d
This commit is contained in:
Alessio Quaglino
2022-11-28 05:31:41 -08:00
committed by Copybara-Service
parent 062cb53a4a
commit d0b1a97338
9 changed files with 730 additions and 1 deletions
+55
View File
@@ -0,0 +1,55 @@
<!-- Copyright 2021 DeepMind Technologies Limited
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<mujoco model="Floppy">
<include file="scene.xml"/>
<extension>
<required plugin="mujoco.elasticity.solid"/>
</extension>
<compiler autolimits="true"/>
<option solver="Newton" tolerance="1e-6" timestep=".001"/>
<size nconmax="6000" njmax="6000" nstack="50000000"/>
<visual>
<map stiffness="100"/>
</visual>
<worldbody>
<composite type="particle" count="24 4 4" spacing="0.1" offset=".1 0 1.5">
<geom size=".025" rgba=".8 .2 .1 1" group="4"
condim="3" solref="0.01 1" solimp=".95 .99 .0001"/>
<skin inflate="0" rgba="0 .7 .7 .6"/>
<plugin plugin="mujoco.elasticity.solid">
<config key="poisson" value="0.2"/>
<config key="damping" value="0.002"/>
<!--Units are in Pa (SI)-->
<config key="young" value="5e4"/>
</plugin>
</composite>
<body>
<joint name="hinge" pos="0 0 .5" axis="0 1 0" damping="50"/>
<geom type="cylinder" size=".4" fromto="0 -.5 .5 0 .5 .5" density="300"/>
</body>
</worldbody>
<actuator>
<motor name="cylinder" joint="hinge" gear="1 0 0 0 0 0" ctrlrange="-100 100"/>
</actuator>
</mujoco>
+56
View File
@@ -0,0 +1,56 @@
<!-- Copyright 2021 DeepMind Technologies Limited
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<mujoco model="Jelly">
<include file="scene.xml"/>
<extension>
<required plugin="mujoco.elasticity.solid"/>
</extension>
<option solver="CG" tolerance="1e-6" timestep=".001"/>
<size nconmax="6000" njmax="6000" nstack="50000000"/>
<visual>
<map stiffness="100"/>
</visual>
<default>
<default class="wall">
<geom type="plane" size=".5 .5 .05"/>
</default>
</default>
<worldbody>
<body mocap="true" pos="-.1 .05 0" zaxis=".5 0 1">
<geom type="capsule" size=".1 .1" group="1" condim="1"/>
</body>
<geom name="+x" class="wall" zaxis="1 0 0" pos="-.5 0 -.25"/>
<geom name="-x" class="wall" zaxis="-1 0 0" pos=".5 0 -.25"/>
<geom name="+y" class="wall" zaxis="0 1 0" pos="0 -.5 -.25"/>
<geom name="-y" class="wall" zaxis="0 -1 0" pos="0 .5 -.25"/>
<composite type="particle" count="8 8 8" spacing="0.07" offset="0 0 1">
<geom size=".025" rgba=".8 .2 .1 1" group="4"/>
<skin inflate="0" rgba="0 .7 .7 .6"/>
<plugin plugin="mujoco.elasticity.solid">
<config key="poisson" value="0"/>
<config key="damping" value="0.001"/>
<!--Units are in Pa (SI)-->
<config key="young" value="5e4"/>
</plugin>
</composite>
</worldbody>
</mujoco>
+72
View File
@@ -0,0 +1,72 @@
<!-- Copyright 2021 DeepMind Technologies Limited
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<mujoco model="Press">
<include file="scene.xml"/>
<extension>
<required plugin="mujoco.elasticity.solid"/>
</extension>
<compiler autolimits="true"/>
<option solver="Newton" tolerance="1e-6" timestep=".001"/>
<size nconmax="6000" njmax="6000" nstack="50000000"/>
<visual>
<map stiffness="100"/>
</visual>
<worldbody>
<composite prefix="A" type="particle" count="4 4 4" spacing="0.2" offset="0 0 .5">
<geom size=".025" rgba=".8 .2 .1 1" group="4"
condim="3" solref="0.01 1" solimp=".95 .99 .0001"/>
<skin inflate="0" rgba="0 .7 .7 .6"/>
<plugin plugin="mujoco.elasticity.solid">
<config key="poisson" value="0.4"/>
<config key="damping" value="0.001"/>
<!--Units are in Pa (SI)-->
<config key="young" value="1e4"/>
</plugin>
</composite>
<composite prefix="B" type="particle" count="4 4 4" spacing="0.2" offset="1 0 .5">
<geom size=".025" rgba=".8 .2 .1 1" group="4"
condim="3" solref="0.01 1" solimp=".95 .99 .0001"/>
<skin inflate="0" rgba="0 .7 .7 .6"/>
<plugin plugin="mujoco.elasticity.solid">
<config key="poisson" value="0"/>
<config key="damping" value="0.001"/>
<!--Units are in Pa (SI)-->
<config key="young" value="5e4"/>
</plugin>
</composite>
<body>
<joint name="soft" type="slide" axis="0 0 1" damping="500"/>
<geom type="box" size=".35 .35 0.05" pos=".1 .1 .8" density="300"/>
</body>
<body>
<joint name="stiff" type="slide" axis="0 0 1" damping="500"/>
<geom type="box" size=".35 .35 0.05" pos="1.1 .1 .8" density="300"/>
</body>
</worldbody>
<actuator>
<motor name="soft" joint="soft" gear="-1 0 0 0 0 0" ctrlrange="-150 300"/>
<motor name="stiff" joint="stiff" gear="-1 0 0 0 0 0" ctrlrange="-150 1600"/>
</actuator>
</mujoco>