Forum Replies Created
-
AuthorPosts
-
HugoKeymaster
Hi @alexpradt
Thank you for your proposal. We are a non-profit initiative. Our staff is funded thanks to the support of our consortium partners and our donors, while the project developers are in companies and research institutes of the community. Such offshore dev is therefore not of interest for us.
Thanks though.
Best wishes,Hugo
HugoKeymasterHi @agnesenardi
Indeed topological changes are not yet properly propagated through the BarycentricMapping. This is something which is contained within our Topology roadmap, but this work is pretty intense.
Could this explain your issue?
Stay tuned about the SOFA roadmap advances 😉Best,
Hugo
HugoKeymasterHey @akthetimes
Alright thanks for the clarification.
What is the full error you are getting when loading the plugin from the plugin manager?Best,
Hugo
HugoKeymasterHugoKeymasterHi @essembly
Welcome on the SOFA forum!
Choosing the right solvers, method is actually case-dependent and requires a bit of experience. You directly noticed this, well done.
1) Using friction contact for your grasping simulation is a good choice. Difference betweem the LocalMinDistance and MinProximityIntersection are available on their respective doc pages. You will understand why more collision points are kept in the MinPoximity case. You should use the LocalMinDistance.
Note that when more contact points are saved, the system to solve is larger, therefore more time-consuming to solve, which leads your simulation to lag.
2) While grasping, if the mesh of the trunk overlaps the cylinder mesh, you should adapt the collision settings (alarmDistance and contactDistance).
I hope this helps already.
Best wishes,Hugo
8 April 2021 at 23:31 in reply to: Error while building Sofa for SoftRobots plugin installation #19091HugoKeymasterHi @sergiopm23
I am actually unsure of your situation.
Are using the binary version of SOFA?
Where did you download it from?
Are you willing to use the sources? or a binary version would suit you?Best,
Hugo
HugoKeymasterHi @eaparra
You said: When I executed the CMake checking the SofaPython3, it showed me an error.
What is this error at the CMake configuration step please?
If the configuration is returning an error, you should not build the project and first solve this CMake error.
Best,
Hugo
8 April 2021 at 23:25 in reply to: [SOLVED] Mesh explodes when using the surfacepressureconstraint #19089HugoKeymasterThank you @davacas for sharing your experience.
However, changing physical parameters to make the simulation more stable is not usually the way to go. Did you analyze the convergence of your simulation while using smaller and smaller time steps? (convergence analysis = comparing the result of the simulation with smaller time steps)
Mass, stiffness are physical parameters that you should know and define once and for all. As stated earlier, numerical settings (time step, tolerance, mesh size etc) must be tuned to ensure this convergence and the stability of your simulation.
Best
Hugo
HugoKeymasterHey @akthetimes
Are you using the binary version of SOFA? the v20.12.02 release?
When are you getting this error exactly? when launching the runSofa exe?Best
Hugo
1 April 2021 at 14:39 in reply to: Error while building Sofa for SoftRobots plugin installation #19066HugoKeymasterHi @sergiopm23
This was due to the fact that there is a mismatch of version between SOFA and SoftRobot. Which versions/branches are you using please?
If you are using master branches, make sure to update the SoftRobot plugin first.
I hope this helps.
Best wishes,Hugo
HugoKeymasterHi @kkasra12
Could you please set Release OR Debug mode first?
Could you rather share the output of the CMake configuration and generate processes please?Thanks
Hugo
1 April 2021 at 14:29 in reply to: [SOLVED] Questions regarding the installation of SofaPython3 plugin #19064HugoKeymasterDear @kexinwei
Welcome to SOFA then!
To run SOFA from a Python environment you should have the following variable defined:export SOFA_ROOT=/path/to/SOFA-build export PYTHONPATH=/path/to/SOFA/SofaPython3-build/lib/python3/site-packages export QT_PLUGIN_PATH=$SOFA_ROOT/bin
I think it is what is missing in your case. Let me know if this helps.
Best wishes,
Hugo
1 April 2021 at 14:25 in reply to: [SOLVED] Export Graph Button causes runSofa to segfault (SIGSEGV) and crash #19063HugoKeymasterHugoKeymasterLooking again to your compilation screenshot I do not see where you assume it comes from an issue with SofaPython3?
It looks to me that the problem is rather located in sceneCreatorExamples with:
Unknown compiler version, please run the configure test
Could you run CMake again and let us know if any error arises?
HugoKeymasterDear @kkasra12
You downloaded the sources from GitHub I assume. Is that correct?
Did you fetch SofaPython3 in the CMake configuring phase by setting to true the CMake variable SOFA_FETCH_SOFAPYTHON3 ?Best wishes,
Hugo
HugoKeymasterHi @nhnhang
In your scene, several problems seem to occur:
- for the skin, you are using a LinearSolverConstraintCorrection. Such a constraint correction requires a direct linear solver to be able to compute the A-1 matrix, used for the computation of the compliance matrix W. Either you use a direct linear solver (like the LDL you commented) or you change for a UncoupledConstraintCorrection. Be careful, choosing one or the other are two different assumptions on your system. See the doc for more, or we can make some training session. Anyway, this will the warning
[WARNING] [GraphScatterredType] set an element is not supported in MultiVector
- About the topology errors/warning, the edge topology structure seems to be missing, just add the option
createSubelements="1"
in the associated MeshLoader
By using a direct linear solver I get:
By using the UncoupledConstraintCorrection I get:
I hope this helps and let’s see if the shaking (meaning numerical instabilities, maybe lack of convergence) remains and solve this subsequently. It could also come from the management of constraint through the UncoupledConstraintCorrection.
Best wishes,
Hugo
HugoKeymasterhey @psimit
Not different would be to expect between the binary and the compiled-from-sources version.
Indeed the
-a 1
comment is overwritten by the boolean “animate” Data of the root node when you are using the GUI, I guess.Best,
Hugo
HugoKeymasterHey @eaparra
Note that the SOFA binaries are including SofaPython3, already built for you.
Would these binaries work for you?Best wishes,
Hugo
HugoKeymasterHey @yupeng
After asking again to some researchers involved in needle insertion, they are indeed using a TetrahedronCollisionModel but they implemented their own collision detection and tetrahedron-based models. It is therefore not in SOFA.
But, at a glance, the principle is the following:
– on the first contact detected, you can set up a collision response which will determine when there is contact and when there is penetration. If penetration, a Perforation constraint must be implemented as a SlidingConstraint or similar
– then the needle goes through, and you need to compute a collision between your needle tip and the TetrahedronCollisionModel to eventually set new constraints along the needle pathIt is a short and rough explanation because I never implemented it myself but this is the idea. I hope this helps already a bit.
Best wishes,Hugo
HugoKeymasterHi @eaparra
I am sorry I can not access the full article.
But, since you seem to be aiming at attaching a mass at the beam extremity (in one point), I think a good and simpler way of modeling it, would be to define a force corresponding to the mass density x gravitational acceleration. Such a force would mimic the effect of an attached mass.
How would this sound ?
Best wishes,
Hugo
HugoKeymasterHi @jonny
The topic you pointed out indeed explains the theoretical difference between the two methods: AttachConstraint vs BilateralInteractionConstraint.
With the PartialFixedConstraint, you can indeed choose which vertices and which dofs of theses vertices to fix.
To answer your last point, I would need a global understanding of what you want to achieve when you say “connect the two models”.
I think what was meant in my comment is that : if you want to connect both objects they have to have the same DOFs types (template). Which is not your case I guess: one object is rigid while the other one is deformable. An alterantive is to simply create a sub-node for the rigid object (connected using a RigidMapping) containing one deformable DOF, e.g. Vec3d.I hope I am clear enough. If not, please let me know.
Best wishes,Hugo
HugoKeymasterHey @nhnhang
Unfortunately @faichele is not available currently for the SOFA ROSConnector support.Note that an alternative exists: using ROS+SOFA through a python environment.
See here an example in the SoftRobot plugin: https://github.com/SofaDefrost/SoftRobots/tree/master/docs/examples/sofarosThe scene corresponding to the example is here: https://github.com/SofaDefrost/SoftRobots/blob/master/docs/examples/sofaros/test_sofaros.py
In the scene, the positions of a mechanical object (/ simulation / sender / position) are streamed to ROS then the ROS node returns towards SOFA and it is received in a second mechanical object.
The scene is still written in SofaPython2 and would need to be updated for python3, but should be trivial.
Hope it helps.
Best wishes,Hugo
HugoKeymasterHey @newbie
The Open.GL is a CMake package recently created (after v20.12 release). This means the branch of the plugin you are using is compatible with the master branch of SOFA.
Regarding a PR, it would be most welcome and appreciated by the community indeed! Do not hesitate to notify your PR in this post as well.
Best wishes,
Hugo
HugoKeymasterHi @aryakarani,
In fact, every points mentioned by Olivier are components available in the pre-compiled (binary) version of SOFA. You should be able to do the same.
Best wishes,
Hugo
HugoKeymasterHi @twxu
I get an error, for this:
ERROR] [TetrahedronSetTopologyContainer(container)] Cannot find edge 0 [2120, 2110] in triangle 4238 [ERROR] [TetrahedronSetTopologyContainer(container)] Cannot find edge 0 [2120, 2110] in triangle 4238 [WARNING] [TetrahedronSetTopologyContainer(container)] TrianglesAroundEdge buffer can't be created as EdgesInTriangle buffer creation failed. [ERROR] [TetrahedronSetTopologyContainer(container)] Cannot find triangle 0 [2497, 3440, 3460] in tetrahedron 0 [ERROR] [TetrahedronSetTopologyContainer(container)] Cannot find triangle 0 [2497, 3440, 3460] in tetrahedron 0 [WARNING] [TetrahedronSetTopologyContainer(container)] TetrahedraAroundTriangle buffer can't be created as trianglesInTetrahedron buffer creation failed. ########## SIG 11 - SIGSEGV: segfault ########## -> /data/Softwares/sofa/build/build-master/lib/libSofaHelper.so.20.12.99(sofa::helper::BackTrace::dump()+0x20) [0x7f66bc152e00] -> /data/Softwares/sofa/build/build-master/lib/libSofaHelper.so.20.12.99(sofa::helper::BackTrace::sig(int)+0x364) [0x7f66bc153384] -> /lib/x86_64-linux-gnu/libc.so.6(+0x46210) [0x7f66bbaa8210] -> /data/Softwares/sofa/build/build-master/lib/libSofaBaseTopology.so.20.12.99(sofa::component::topology::TriangleSetGeometryAlgorithms<sofa::defaulttype::StdVectorTypes<sofa::type::Vec<3u, double>, sofa::type::Vec<3u, double>, double> >::reorderTrianglesOrientationFromNormals()+0x33c) [0x7f66bd4c9e8c]
In such cases, I advise to use the option
createSubelements="1"
in the MeshLoader. In your case:finger.createObject('MeshVTKLoader', name='loader', filename=feaVTK_path, translation=fingerTrans, rotation=fingerRot, createSubelements="1")
It should therefore solve your problem.
Best wishes,Hugo
- for the skin, you are using a LinearSolverConstraintCorrection. Such a constraint correction requires a direct linear solver to be able to compute the A-1 matrix, used for the computation of the compliance matrix W. Either you use a direct linear solver (like the LDL you commented) or you change for a UncoupledConstraintCorrection. Be careful, choosing one or the other are two different assumptions on your system. See the doc for more, or we can make some training session. Anyway, this will the warning
-
AuthorPosts