29 June 2020 at 18 h 54 min #16746
I have a question about defining a self contact for an object. What I designed is a bellow that can perform compression by applying negative pressure inside. However, after apply pressure to certain level, sometimes one convolution got inside of another convolution, like this The original is like this:.
My idea is to define a self contact for the outside surface of bellow, so that when one point of surface contacts another point, it will stop movement. Can I ask if there is any available function for this?
Thanks for your help.7 July 2020 at 22 h 59 min #16823HugoKeymaster
- SOFA Consortium
What you are facing here is not a problem of self collision. Rather a problem of numerical settings. Wrong setting of your physical properties could lead to instabilities.
But before going any further, I would ask you:
– what your mechanical properties?
– what is your time step?
– what is your object size?
– and could you try running the same scene with a timestep / 100 and tell us if it still flips?
Hugo14 July 2020 at 16 h 42 min #16872
Thanks for your help.
For the mechanical properties, do you mean materials? The actuator bellow is made of silicone. So I set the youngModulus = 1700kPa and poissonRatio = 0.3 in TetrahedronFEMForceField. The time step is 0.02 and object size is around 50mm length. When I tried timestep/100 = 0.0002, the problem is still existing.
The problem also exists in other FEA simulation software like Abaqus. I found a tutorial mentioning that a boundary condition should be set on the outlayer surface to avoid collision. So I guess a similar action should be applied on SOFA.
Regards,21 July 2020 at 16 h 46 min #16913HugoKeymaster
- SOFA Consortium
What do you mean exactly by adding the boundary condition should be set on the outlayer surface?
Could you also share your scene so that I can test it exactly locally?
Hugo28 July 2020 at 10 h 08 min #16958
Thanks for your help. I was stuck in this problem for more than two months. But I still couldn’t find a proper solution then seeking helps here.
I have uploaded all my code on github.
My project is very similar to a project done on
This project, FeTCh Mark 1 Manipulator, is done by one of your team. Other projects done by same team were made as tutorial for SoftRobotics plugin, so I am wondering if you know where to find the source code of this project?
Really appreciate for your help.
Regards,23 August 2020 at 8 h 23 min #17056
Since I haven’t got replied for more than a month, I started to investigate about how SOFA handles the self-collision. I ran a test that two parts are stored in the same mesh file and two parts are stored in separated mesh files. The scene imports two parts into SOFA as one object while two parts imported in the second scene as two separated objects.
The scenario for the test is that one part is placed above the other part and could fall down due to the gravity, while the other object is fixed on the ground. The collision will occur when the top part falls down to a certain height and contact the bottom part. In the simulation, I used the Brute Force Collision detection and generated point, edge and triangle model.
The results showed that in the first scene the top part fell straight down to the ground tunneling through the bottom part; however in the second scene, the collision did happen when two parts touched each other and resisted the top part falling. Inspired by the results, I applied separated collision models to each convolution or spiral on my bellow. And the performance of simulation did get improved like it showed resistance when bellow was in compression, but the overlapping was still existed.
I have done some research about it and found that this was because the collision model missing continuous collision detection function. Is it possible for you to refer me any existing function that will perform CCD? Or is somebody currently working on this topic so that I could join in the discussion or developing? Thanks for your help.
- You must be logged in to reply to this topic.