Soft Objects Dynamics and External Objects Builder

Typically: "How do I... ", "How can I... " questions
Post Reply
zhy149
Posts: 132
Joined: 14 Apr 2021, 20:18

Soft Objects Dynamics and External Objects Builder

Post by zhy149 »

Hello, is there any way I can create soft bodies such as deformable cubes or balls and import them to Coppelia for manipulation tasks? Thank you!

coppelia
Site Admin
Posts: 10378
Joined: 14 Dec 2012, 00:25

Re: Soft Objects Dynamics and External Objects Builder

Post by coppelia »

Hello,

as for now, soft bodies are still problematic in CoppeliaSim. The only way to obtain something soft, would be to create several rigid bodies, and link them via spring-damper joints. This works fine for flexible beams, and relatively simple objects such as cuboids and spheres. E.g. a soft cuboid could be approximated via a cube core, that links to 6 thick faces via 6 prismatic sprint/damper joints, e.g.:

Code: Select all

cubeCore --> sprintDamperJoint1 --> faceCuboid1
         --> sprintDamperJoint2 --> faceCuboid2
         --> sprintDamperJoint3 --> faceCuboid3
         --> sprintDamperJoint4 --> faceCuboid4
         --> sprintDamperJoint5 --> faceCuboid5
         --> sprintDamperJoint6 --> faceCuboid6
In above case, make sure the core is flagged as model base, is non-respondable, and the 6 faces have a local respondable mask of 0, so that they do not generate collision responses with each other.

Cheers

zhy149
Posts: 132
Joined: 14 Apr 2021, 20:18

Re: Soft Objects Dynamics and External Objects Builder

Post by zhy149 »

coppelia wrote: 08 Apr 2022, 09:13 Hello,

as for now, soft bodies are still problematic in CoppeliaSim. The only way to obtain something soft, would be to create several rigid bodies, and link them via spring-damper joints. This works fine for flexible beams, and relatively simple objects such as cuboids and spheres. E.g. a soft cuboid could be approximated via a cube core, that links to 6 thick faces via 6 prismatic sprint/damper joints, e.g.:

Code: Select all

cubeCore --> sprintDamperJoint1 --> faceCuboid1
         --> sprintDamperJoint2 --> faceCuboid2
         --> sprintDamperJoint3 --> faceCuboid3
         --> sprintDamperJoint4 --> faceCuboid4
         --> sprintDamperJoint5 --> faceCuboid5
         --> sprintDamperJoint6 --> faceCuboid6
In above case, make sure the core is flagged as model base, is non-respondable, and the 6 faces have a local respondable mask of 0, so that they do not generate collision responses with each other.

Cheers
I'll try this out, thank you!

Post Reply