Forum Replies Created
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.
Ben28 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,14 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,29 June 2020 at 18 h 54 min #16747
Sorry, I have issues with posting a new thread.
My new question is about an object self contact.
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.27 June 2020 at 13 h 24 min #16724
Very appreciate your help and sorry to bother you again.
Do you have any suggestion to solve my SparseLDLSolver issues? I have rebuilt whole system. But it doesn’t help.
Also, for the container issue. This not only happened on Soft Robot tutorial, but also other mesh files either made by myself or from others uploading in the forum. I found your suggestion in another thread regarding to TriangleSetTopologyContainer, by using the method https://github.com/sofa-framework/sofa/pull/1245/commits/bd22178a08e3a8217c1d786aacf6abab8355a30f Can I apply same method on TetrahedronSetTopologyContainer?
Regards,17 June 2020 at 3 h 31 min #16653
Thanks for helping me. Your answers did solve my problems.
Regards,2 June 2020 at 17 h 17 min #16521
Really appreciate for your fast responses and time for testing my scene.
1. sorry for my stupid mistakes. What I mean not working is that an error from SparseLDLSolver keeps reporting:
[ERROR] [SparseLDLSolver] Failed to factorize, D(k,k) is zero, which has been asked in an old post. https://www.sofa-framework.org/community/forum/topic/how-to-use-the-component-sparseldlsolver/ However, it seems this problem is still not solved. I have checked that both metis and csparse were found and successfully built in cmake.
-- metis was found, SparseLDLSolver will be built -- csparse was found, SparseLUSolver and SparseCholeskySolver will be built
Also, the tutorial I followed is PneunetGripper from SoftRobots plugin. Because this tutorial cannot be successfully simulated in my SOFA, I picked up some sentences and cut off those collision sentences. This error is like this:
[ERROR] [TetrahedronSetTopologyContainer(container)] Cannot find edge 1 [172, 184] in triangle 0 [ERROR] [TetrahedronSetTopologyContainer(container)] Cannot find edge 1 [172, 184] in triangle 0 [WARNING] [TetrahedronSetTopologyContainer(container)] TrianglesAroundEdge buffer can't be created as EdgesInTriangle buffer creation failed. [ERROR] [TetrahedronSetTopologyContainer(container)] Cannot find triangle 0 [155, 152, 226] in tetrahedron 0 [ERROR] [TetrahedronSetTopologyContainer(container)] Cannot find triangle 0 [155, 152, 226] in tetrahedron 0 [WARNING] [TetrahedronSetTopologyContainer(container)] TetrahedraAroundTriangle buffer can't be created as trianglesInTetrahedron buffer creation failed. [ERROR] [TetrahedronFEMForceField(FEM)] object must have a tetrahedric topology. The component is inactivated. To remove this error message please add a tetrahedric topology component to your scene. [WARNING] [SurfacePressureConstraint(SurfacePressureConstraint)] The field named 'visualization' is now deprecated. To remove this warning message, the field 'visualization' should be replaced by the field 'drawPressure'. [WARNING] [SurfacePressureConstraint(SurfacePressureConstraint)] The field named 'showVisuScale' is now deprecated. To remove this warning message, the field 'showVisuScale' should be replaced by the field 'drawScale'.
This error not only happened when I used softRobots plugin, but also self-made sphere mesh and mesh from other people provided on the forum. You can find mesh file in github link: I made sphere.vtk myself and cube20.vtk from others.
I also followed the tutorial of liver triangleFEMForcefield to make up my scene and CAD files are the same as those in tutorial. Could you please tell what you mean volumetric model? Do you mean I should use tetrahedric topology instead of triangular one?
Regards,1 June 2020 at 7 h 15 min #16487
This is scene code: https://github.com/duanmu23/SOFA-bellow.git
There are few questions here:
1. I just tried to apply a distributed pressure on the surface of the actuator. But it
2. I considered to transfer global coordinate system to a local coordinate system by using
mapping. But dont’t know how to do. Some people used localCoord parameter in a mapping
3. Also, can you tell me what is the meaning of @.. and @. in mapping?
Thanks for your time helping me.31 May 2020 at 14 h 25 min #16458
Also, I have issues with SparseLDLSolver. I have checked the thread . My problem is the same that the error “failed to factorize” reported during simulation. The Metis is successfully built in Cmake. There is a line in cmake: “metis was found, SparseLDLSolver will be built”, and the address for Metis_DIR is sofa/build/cmake . Because I really need to simulate a deformable actuator. It seems most of other people using SparseLDLSolver in their scene. I don’t know whether there is another way to skip using this Solver.
My build configuration is: VS2019, Cmake 3.17.1 , SOFA version 19.12.
Really appreciate for your help.
Regards,27 May 2020 at 0 h 12 min #16391
Thanks for helping me.
At the end, I added entry in cmake to install the plugin. Meanwhile, I copied the all the file in lib and include documents in costumed version of SOFA provided on SoftRobots website into the src file 19.12 SOFA. Then finally successfully installed the plugin.
Can I ask another question about using the SOFA? Sorry I am new to this software and there are a things new to me. For the functions in SOFA, where can I find documentation for them? Like the arguments, how to use? The information on website is too general. For example the SurfacePressureForceField, I only know three arguments of it: pressure, pulseMode and pressureSpeed. However, I don’t know what the pulseMode and pressureSpeed stand for and their units. Is there any place I could find out?
Thank you very much for helping me.