Home › Forum › SOFA › Using SOFA › [SOLVED] Question about the SofaRobots Plugin
Tagged: 64_bits, Plugin_SoftRobots, SOFA_1912, Soft Robots, Windows_10
- This topic has 11 replies, 2 voices, and was last updated 4 years, 4 months ago by Hugo.
-
AuthorPosts
-
20 May 2020 at 08:52 #16325BenjaminBlocked
Hi everyone,
Can anyone help me with the plugin installation?
I followed the instruction on softrobots plugin website by adding the path of softrobots and STLIB source file to the entry SOFA_EXTERNAL_DIRECTORIES in cmake. But in the documentation on SOFA website, it says extra lines need to be added in cmakelist, sofa_add_plugin(plugins/ …) under the finding_package(SofaFramework). But I only found “## Plugins
add_subdirectory(applications/plugins)” in the main SOFA cmakelist. So I added sofa_add_plugin(plugins/ ..) in the list but cmake reported errors during configuring.Another question is that SOFA can’t detect the plugin files even these files do exist in the directory. Didn’t have this problem before adding the softrobots plugin. Have reinstalled many times but couldn’t solve it. Sorry I have screenshotted the error but don’t know how to upload the image.
Just wondering if this is the compatible problem between SOFA and softrobots plugin? I am using SOFA version v19.12.00 right now. Should I install the latest version to solve it?
24 May 2020 at 10:48 #16349HugoKeymasterThere several way of doing this.
I recommend you to choose one and stick to it.The one I prefer is: create a repository apart from SOFA, containing all external plugins you want (STLIB, SoftRobot etc). At the root of this repository, you can then create a text file: CMakeLists.txt with the following structure
find_package(SofaFramework) sofa_add_plugin(SoftRobot/ SoftRobot) sofa_add_plugin(STLIB/ STLIB) ...
Your repo should look like:
repo
|
— STLIB/
— SoftRobot/
— CMakeLists.txtFinal step, when compiling SOFA, you add to the
SOFA_EXTERNAL_DIRECTORIES
entry the path to your repository containing the above-described CMakeLists.When configuring (SOFA), you will now see your plugin options appear.
Configure, generate and compile.I hope this helps.
Hugo
27 May 2020 at 00:12 #16391BenjaminBlockedHi Hugo,
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.
31 May 2020 at 14:25 #16458BenjaminBlockedHi Hugo,
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,
31 May 2020 at 23:44 #16476HugoKeymaster1 June 2020 at 07:15 #16487BenjaminBlockedHi Hugo,
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
seems
not working.
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
function.
3. Also, can you tell me what is the meaning of @.. and @. in mapping?Thanks for your time helping me.
1 June 2020 at 15:08 #16500HugoKeymasterCould you point me out the tutorial scene you started from?
1. what do you mean by not working? before running your scene I needed to clean the naming (look at your spelling of Rayleigh). Then, when running it, it becomes unstable because you are applying a pressure in the surface cavity, and the mechanical model is only a triangular model (and no volumetric model). Did you change this yourself?
2. I am not sure understand your point. Mappings are using global coordinate. Could you detail here please?
3. “@..” means look at the context of the node above in the hierarchy graph (it’s an analogy with
cd ..
) while “@.” means the current context of the componentHope this helps.
BestHugo
2 June 2020 at 17:17 #16521BenjaminBlockedHi Hugo,
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,
11 June 2020 at 11:47 #16584HugoKeymaster1. The component SparseLDLSolver seems to be well created in your simulation. You compiled it successfully (your problem is therefore different than the other topic) and it seems to be well created as well in the scene. Only the factorization fails on your side. I can not reproduce the error.
2. the error your are showing :
[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'.
it comes from a simulation you are running and messages are clear: you do not have a tetrahedral topology available to compute a linear elastic model on it. And you are using data (showVisuScale, visualization) which are deprecated.
Volumetric model: volumetric elements (tetrahedral or hexahedral mesh)
Yes I would therefore use a tetrehdral mesh here since you are aiming at simulating the volumetric behavior of the finger robot.Best
Hugo
27 June 2020 at 13:24 #16724BenjaminBlockedHi Hugo,
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,
29 June 2020 at 18:54 #16747BenjaminBlockedSorry, 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.7 July 2020 at 22:59 #16824 -
AuthorPosts
- You must be logged in to reply to this topic.